it-swarm.com.de

nginx lädt das SSL-Zertifikat nicht

Ich muss SSL (https) für eine Website hinzufügen, ich erhielt eine SSL.CSR und eine SSL.KEY-Datei. Ich habe 'dos2unix'ed (weil sie ^ M verfolgt) und auf den Server kopiert haben (CSR -> mywebsite.crt, KEY -> mywebsite.key). Ich habe folgende Änderung an nginx.conf vorgenommen:

@@ -60,8 +60,13 @@
        }

     server {
-       listen       80;
+       listen       443;
         server_name  ...;
+       ssl                 on;
+       ssl_certificate     mywebsite.crt;
+       ssl_certificate_key mywebsite.key;
+       ssl_session_cache   shared:SSL:10m;
+       ssl_session_timeout 10m;
        # Set the max size for file uploads to 500Mb

        client_max_body_size 500M;

Fehler tritt auf, wenn ich nginx neu starte:

nginx: [emerg] PEM_read_bio_X509_AUX("/etc/nginx/mywebsite.crt") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line:Expecting: TRUSTED CERTIFICATE)

Ich denke, es liegt daran, dass die erste Zeile der mywebsite.crt-Datei 'REQUEST' enthält, also entferne ich 'REQUEST' aus der ersten und letzten Zeile und starte nginx erneut. Anschließend wird ein weiterer Fehler angezeigt:

nginx: [emerg] PEM_read_bio_X509_AUX("/etc/nginx/mywebsite.crt") failed (SSL: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag error:0D06C03A:asn1 encoding routines:ASN1_D2I_EX_PRIMITIVE:nested asn1 error error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:Field=algorithm, Type=X509_ALGOR error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:Field=signature, Type=X509_CINF error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:Field=cert_info, Type=X509 error:0906700D:PEM routines:PEM_ASN1_read_bio:ASN1 lib)

Irgendeine Idee?

25
user21916

Sie sollten niemals Ihren privaten Schlüssel freigeben. Sie sollten den hier geposteten Schlüssel als kompromittiert betrachten und einen neuen Schlüssel und eine neue Signaturanforderung generieren.

Sie haben eine Zertifikatsanforderung und kein tatsächlich signiertes Zertifikat. Sie stellen die Anforderung ('CSR') an die unterzeichnende Partei. Mit dieser Anforderung erstellen sie ein signiertes Zertifikat (CRT), das sie Ihnen zur Verfügung stellen. Der Schlüssel wird niemals an Dritte weitergegeben.

26
Mark Sturgill

Zu Ihrer Information können Sie die Schlüssel nur überprüfen:

openssl x509 -noout -text -in your.crt
openssl rsa -noout -text -in your.key

In meinem Fall erwies sich dieser Fehler als eher subtil: Der BEGIN-Block begann mit 4 Strichen, nicht 5 . ---- vs -----. Leider sind die Fehlermeldungen des Validierungs-Tools nicht sehr spezifisch.

14
Joseph Lust

Dieses Problem ist mir bei der Online-Suche nach SSL aufgefallen: Fehler: 0906D06C: PEM-Routinen: PEM_read_bio: keine Startzeile: Erwartet: TRUSTED CERTIFICATE
Ich habe diese Fehlermeldung nach dem Laufen erhalten:

    nginx -t

Das Problem, das ich hatte, war, dass cert.pem und cert.key fehlten

    -----BEGIN CERTIFICATE-----
    -----END CERTIFICATE-----
11
Christie

Ich habe die Zertifikate in gitlab.rb-Datei falsch konfiguriert. Ein einfacher Fehler hat lange gedauert.

nginx['ssl_certificate'] = "/etc/gitlab/ssl/self-ssl.crt"
nginx['ssl_certificate'] = "/etc/gitlab/ssl/self-ssl.key"

Anstatt


nginx['ssl_certificate'] = "/etc/gitlab/ssl/self-ssl.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/self-ssl.key"
2
Ershad Ahmad

Die Schritte auf der NGINX-Site zum Kombinieren Ihres öffentlichen Zertifikats mit einem Zwischenzertifikat verwenden cat, um die beiden Dateien zu kombinieren. Wenn Ihre öffentliche Zertifizierungsdatei jedoch nicht in einer neuen Zeile endet, wird die -----BEGIN CERTIFICATE------Zeile des Zwischenzertifikats an das Ende der -----END CERTIFICATE------Zeile des öffentlichen Zertifikats angehängt. Durch manuelles Trennen dieser beiden Zeilen kann das Problem behoben werden.

0
MikeOnline