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
