Apache: Probleme mit SSL ("Some of your private key files are encrypted for security reasons.")

Wenn Sie beim Start Ihres Apache2-Webservers diese Fehlermeldung erhalten, dann kann Ihnen diese Anleitung weiter helfen:

Apache/2.2.16 mod_ssl/2.2.16 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.

Server servername:80 (RSA)
Enter pass phrase:Apache:mod_ssl:Error: Private key not found.
**Stopped
httpd not running, trying to start
Action 'graceful' failed.
The Apache error log may have more information.
Im Apache2-Logfile ("/var/log/apache/error.log") stehen dazu folgende ergänzende Informationen:
[Fri Sep 14 18:54:25 2012] [error] Init: Unable to read pass phrase [Hint: key introduced or changed before restart?]
[Fri Sep 14 18:54:25 2012] [error] SSL Library Error: 218710120 error:0D094068:asn1 encoding routines:d2i_ASN1_SET:bad tag
[Fri Sep 14 18:54:25 2012] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Fri Sep 14 18:54:25 2012] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
[Fri Sep 14 18:54:25 2012] [error] SSL Library Error: 218734605 error:0D09A00D:asn1 encoding routines:d2i_PrivateKey:ASN1 lib
In diesem Fall fehlt dem SSL Zertifikat das entsprechende Passwort, welches bei der Erstellung dieses Zertifikates vergeben wurde. Die einfachste Lösung in diesem Fall ist das Erstellen eines neuen SSL-Zertifikates. Achtung: Dieser Hinweis gilt nur für private Server oder intern genutzte Server, denn beim Nutzen selbst-signierter SSL-Zertifikate erhalten die Webseitenbesucher vor dem Öffnen der Webseite einen Warnhinweis (sh. Bild am Ende des Artikels). Beispiel: Der folgende Befehl erstellt ein SSL-Zertifikat mit einer Gültigkeit von 365 Tagen, dem "X.509 Certificate Signing Request" und einer Schlüsselstärke von 2048 Bits:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /var/www/apache.key -out /var/www/apache.crt
Beantworten Sie die angezeigten Fragen (hier nur ein Beispiel):
Generating a 2048 bit RSA private key
...+++
..+++
writing new private key to '/var/www/apache.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]:DE
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Test
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:Test
Email Address []:
Jetzt finden Sie in Ihrem Apache2-Webserver Verzeichnis ("/var/www/") zwei neue Dateien:
-rw-r--r--  1 root root    1326 14. Sep 08:08 apache.crt
-rw-r--r--  1 root root    1679 14. Sep 08:08 apache.key
Diese Dateien können Sie nun in Ihre Konfigurationsdatei des WebServers bzw. des virtuelles Hosts einbinden. In diesem Beispiel binde ich die beiden SSL-Dateien in den "Default" Server ein:
nano /etc/apache2/sites-enabled/000-default

[...]
SSLEngine on
SSLCertificateFile /var/www/apache.crt
SSLCertificateKeyFile /var/www/apache.key
Jetzt muss der Apache2-Server neu gestartet werden:
/etc/init.d/apache2 restart
Jetzt können Sie Ihre Webseite mit dem Protokoll "https://" aufrufen. Dabei wird Ihnen wahrscheinlich die folgende Warnmeldung angezeigt, welche Sie (bei einer vertraulichen internen Nutzung der Webseite) bestätigen können:
  • Klicken Sie auf "Ich kenne das Risiko"
  • Dann auf "Ausnahmen hinzufügen ..." klicken > Es wird ein neues Fenster geöffnet
  • Klicken Sie auf "Sicherheits-Ausnahmeregel bestätigen"
Weitere Artikel Artikel zur Lösung des Problemes "Fehlercode: ssl_error_rx_record_too_long"