*Markus: Apache-SSL Was läuft falsch?

Hallo,

da hier einige Servergurus zu finden sind, hoffe ich, hier die Antwort auf mein Problem zu finden.
Ich will auf einem Apache/Linux SSL einrichten, und zwar ein Serverzertifikat, wie man es bei SSL-Verschlüsselungen von Webseiten gewohnt ist. Dabei stoße ich ständig auf Probleme. Einmal kann ich die das geschützte Verzeichnis sogar über HTTP erreichen, versuche ich https://, bekomme ich nur eine Fehlermeldung, die in dieser Weise ungewollt ist.
Bei meinem jetzigen Versuch kann Apache nicht mal mehr starten. Während des Hochfahren des Apache bleibt dieser einfach hängen. [BUSY] in der Bash bleibt stehen, kein [DONE], kein [FAIL].
Ich habe bisher folgende Schritte ausgeführt:

#Private Serverkey erstellen
$ openssl genrsa -des3 -rand file1:file2:file3:file4:file5 -out server.key 1024

Was es mit diesem file1:file2... auf sich hat, habe ich nicht verstanden. Es wird zwar hier erklärt http://slacksite.com/apache/certificate.php, aber was damit gemeint ist, verstehe ich nicht:

The key is generated using the following command, where file1:file2:etc represents the random compressed files.

Danach....
#Zertifikat erstellen (Certifcate Signing Request)
$ openssl req -new -key server.key -out server.csr
Enter pass phrase for server.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:AT
State or Province Name (full name) [Some-State]:Wien
Locality Name (eg, city) []:Wien
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Spenger AG
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:secure.domain.tld (Das hier ist das Verzeichnis und gleichzeitig die aufzurufende Adresse auf meinem localhost. Sollte ich hier etwa localhost/secure.domain.tld angeben?
Email Address []:secure@pithax.invalid

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

#Zertifikat überprüfen:
$ openssl req -noout -text -in server.csr

...Schien in Ordnung zu sein.

#Zertifikat selbst signieren, und eine Gültigkeit von 150 Tagen festlegen
$ openssl x509 -req -days 150 -in server.csr -signkey server.key -out server.crt
Signature ok
subject=/C=AT/ST=Wien/L=Wien/O=Spenger AG/CN=secure.domain.tld/emailAddress=secure@pithax.invalid
Getting Private key
Enter pass phrase for server.key:

#Alle 3 Files jetzt nach /etc/httpd/conf verschieben
In /etc/httpd/conf/ folgendes Verzeichnisse erstellen:

ssl.crt, ssl.key.

Die Datei server.crt in ssl.crt kopieren.
Die Datei server.key in ssl.key kopieren.
#In der httpd.conf von Apache folgende Zeile auskommentieren:

Secure (SSL/TLS) connections

Include conf/extra/httpd-ssl.conf

Die Datei /etc/httpd/conf/extra/http-ssl.conf editieren. Sie sieht jetzt so aus:

Listen 443

AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl

SSLPassPhraseDialog  builtin

SSLSessionCache        "shmcb:/var/run/httpd/ssl_scache(512000)"
SSLSessionCacheTimeout  300

SSLMutex  "file:/var/run/httpd/ssl_mutex"

<VirtualHost _default_:443>
   <Directory /srv/http/secure.domain.tld>
      Options FollowSymLinks Indexes ExecCGI
      Order allow,deny
      Allow from all
      AllowOverride All
   </Directory>
#   General setup for the virtual host
DocumentRoot "/srv/http/secure.domain.tld"
ServerName secure.domain.tld:443
ServerAdmin secure@pithax.net
ErrorLog "/var/log/httpd/error_log"
TransferLog "/var/log/httpd/access_log"

#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual host.
SSLEngine on

SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

SSLCertificateFile "/etc/httpd/conf/ssl.crt/server.crt"
#SSLCertificateFile "/etc/httpd/conf/server-dsa.crt"

SSLCertificateKeyFile "/etc/httpd/conf/ssl.key/server.key"

SSLCACertificatePath "/etc/httpd/conf/ssl.crt"
SSLCACertificateFile "/etc/httpd/conf/ssl.crt/server.crt"

<FilesMatch ".(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/srv/http/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>

BrowserMatch ".*MSIE.*" \          nokeepalive ssl-unclean-shutdown \          downgrade-1.0 force-response-1.0

CustomLog "/var/log/httpd/ssl_request_log" \           "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"

</VirtualHost>

Ich hoffe, jemand kann mich über meine hier gemachten Fehler aufklären.

Markus

--
  1. Nachtrag:

    Sorry, ich vergaß:

    Im Errorlog steht dazu folgendes:

    [Tue Aug 19 17:16:43 2008] [error] Init: Unable to read pass phrase [Hint: key introduced or changed before restart?]
    [Tue Aug 19 17:16:43 2008] [error] SSL Library Error: 218710120 error:0D094068:asn1 encoding routines:d2i_ASN1_SET:bad tag
    [Tue Aug 19 17:16:43 2008] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
    [Tue Aug 19 17:16:43 2008] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
    [Tue Aug 19 17:16:43 2008] [error] SSL Library Error: 218734605 error:0D09A00D:asn1 encoding routines:d2i_PrivateKey:ASN1 lib

    Was ist damit gemeint, er kann die pass phrase nicht lesen?
    Nach dne anderen Fehler habe ich bereits nachgeforscht. Es hieß, dass diese Fehler kommen würde, wenn man das .crt-File mit dem .csr-File verwechselt hätte, was ich aber mal ausschließe, da ich nach Anleitung vorgegangen bin.
    In einem anderen Posting meinte wieder jemand, dass eine Variable in der httpd-ssl.conf anders hieße, aber da war ich irgendwie von Apache 1.3 die Rede.

  2. Wahrscheinlich lag es am Passwort für den Key. Offensichtlich wollt Apache wahrscheinlich eien Passworteingabe, wo auch immer. Desweiteren war der Domainname im Zertifikat falsch. Nehme ich als Domain einfach nur localhost, funktioniert es. Dabei habe ich mich an dieser Anleitung orientiert:

    https://www.schirmacher.de/display/INFO/Apache+SSL+Zertifikat+erstellen+und+installieren

    Markus

    1. Bezüglich Key und Passwort: Der Key sollte ohne Passwort erstellt werden. Zumindest hat es so jetzt funktioniert.

      --