Ich habe mein Zertifikat per E-Mail erhalten und die erforderlichen Dateien erstellt und kopiert. Ich habe meinen Server neu gestartet und die folgenden Fehler erhalten.
[Mi Feb 08 13:02:06 2012] [Fehler] Init: Das Serverzertifikat kann nicht aus der Datei /home/sslcertificates/mydomain.crt.__ gelesen werden. [Mi Feb 08 13:02:06 2012] [Fehler] SSL-Bibliotheksfehler: 218529960 Fehler: 0D0680A8: ASN1-Codierungsroutinen: ASN1_CHECK_TLEN: falscher Tag [Mi Feb 08 13:02:06 2012] [Fehler] SSL-Bibliotheksfehler: 218595386 Fehler: 0D07803A: ASN1-Kodierungsroutinen: ASN1_ITEM_EX_D2I: verschachtelter ASN1-Fehler
Hat jemand irgendwelche Ideen?
Eine andere mögliche Fehlerquelle, die diese Fehlermeldung verursacht, ist: Anstelle der Zertifikatsdatei, die ich mit der Zertifizierungsanforderungsdatei verknüpft habe. Erkennbar, wenn Sie die erste Zeile der Datei lesen: Entweder
-----BEGIN CERTIFICATE REQUEST-----
Oder
-----BEGIN CERTIFICATE-----
:-)
Situation: Apache 2.4 verwendet das StartSSL-Zertifikat, das ASN-Codierungsfehler generiert.
Problem:
AH02564: Failed to configure encrypted (?) private key <domain>.com:80:0, check /etc/pki/tls/certs/ssl.key
Einige SSL-Aussteller verschlüsseln standardmäßig die SSL-Schlüsseldateien. Stellen Sie daher sicher, dass Sie sie auf dem Server entschlüsseln und vom virtuellen Host aus weiterleiten.
Geben Sie einfach die Schlüsseldatei ein, um sicherzustellen, dass sie nicht verschlüsselt ist.
Entschlüsseln Sie die Schlüsseldatei für die mod_ssl
openssl rsa -in ssl.key -out ssl.key
Fügen Sie für die SSL-Konfiguration im Apache conf (httpd.conf) die folgenden Konfigurationen hinzu und starten Sie den Apache neu.
# SSL
<VirtualHost *:443>
ServerName gajen.com
SSLCertificateKeyFile /etc/pki/tls/certs/ssl.key
SSLCertificateFile /etc/pki/tls/certs/ssl.crt
SSLCertificateChainFile /etc/pki/tls/certs/root.ca.pem
</VirtualHost>
Zur Fehlerbehebung:
tail 50 /var/log/httpd/error_log
tail 50 /var/log/httpd/ssl_error_log
In meinem Fall hatte ich die Zertifikate gemischt: SSLCertificateFile hatte private_key und SSLCertificateKeyFile hatten das Zertifikat.
Lassen Sie dies hier, da dies die erste Google-Suche nach dem Fehler ist: Dies kann auch der Fall sein, wenn Sie ein neues passphrase-geschütztes Zertifikat installieren und einfach die Apache-Konfiguration neu laden (anstatt Apache vollständig neu zu starten). Beim Neuladen werden keine Fehler ausgegeben, es wird jedoch auch keine Passphrase verlangt und das Zertifikat kann nicht entschlüsselt werden.
Sie können das Problem beheben, indem Sie Apache vollständig neu starten, wodurch Sie nach der Passphrase gefragt werden und Sie entschlüsseln können.
Problem behoben mit * .key-Datei neu erstellen und Inhalt erneut kopieren und einfügen.
Oder Sie müssen vor dem Deaktivieren des alten Kennworts die automatische Eingabe ...
#SSLPassPhraseDialog exec:/etc/ssl/passphrase-script
Bei der SSL-Installation in Apache 2.4 sind wir kürzlich mit dem gleichen Fehler konfrontiert - "asn1 encoding routines".
Wir hatten alle Dateien korrekt platziert und in der .conf-Datei korrekt darauf ausgerichtet. Nach einem Tag voller Probleme stellten wir fest, dass das Problem nach der Erteilung des Zertifikats nicht in der Konfiguration lag.
Wir haben die Certificate Signing Request (CSR) mit dem integrierten System des Herstellers erstellt. Dies erlaubte uns, den von uns erstellten Schlüssel einzufügen. Das SSL-Zertifikat, das der Hersteller zurückgegeben hat, sollte diese CSR abbilden, die unserem privaten Schlüssel zugeordnet wurde. Anscheinend passte es nicht. Das von ihnen bereitgestellte SSL-Zertifikat wird der CSR nicht zugeordnet.
Möglicher Grund Die Umwandlung von Key to CSR ist auf der Anbieterseite aufgrund von Unix-Zeilenenden (\ n anstelle von\r\n)/encoding (ANSI/UTF8)/erwarteten neuen Zeilen falsch.
Wir haben CSR selbst mit OpenSSL erstellt und die CSR-Generierung von Anbietern umgangen. Es funktionierte. In unserem Fall haben Sie also die Erstellung des Schlüssels und der entsprechenden CSR mit OpenSSL und die Verwendung dieses Zertifikats zum Generieren des öffentlichen SSL-Protokolls ausgeführt.
OpenSSL-Befehl
openssl req -new -sha256 -key ~/site.com.ssl/site.com.key -out ~/site.com.ssl/site.com.csr
Ich hatte dieses Problem, weil mir der Inhalt einer IIS-ähnlichen .p7b-Datei gesendet wurde, die in eine E-Mail eingefügt wurde. Es hat die Tags "----- BEGIN CERTIFICATE -----" und "----- END CERTIFICATE -----", genau wie .pem, und der Inhalt verwendet eine ähnlich aussehende base64-Codierung. Ich habe es wie folgt in eine * .pem-Datei umgewandelt:
openssl pkcs7 -print_certs -in cert.p7b -out cert.cer
Danach war Apache 2.2 glücklich.