Ich kann SSL nicht einrichten. Ich habe gegoogelt und ein paar Lösungen gefunden, aber keine davon hat für mich funktioniert. Ich brauche bitte Hilfe ...
Hier ist der Fehler, den ich bekomme, wenn ich versuche, nginx neu zu starten:
root@s17925268:~# service nginx restart
Restarting nginx: nginx: [emerg] SSL_CTX_use_PrivateKey_file("/etc/nginx/conf.d/ssl/ssl.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)
nginx: configuration file /etc/nginx/nginx.conf test failed
Mein Zertifikat stammt von StartSSL und ist 1 Jahr gültig.
Folgendes habe ich getestet:
- Das Zertifikat und der private Schlüssel haben keine nachgestellten Leerzeichen.
- Ich verwende nicht die Standarddatei server.key.
- Ich habe die Datei nginx.conf überprüft und die Anweisungen zeigen auf den richtigen privaten Schlüssel und das richtige Zertifikat.
Ich habe auch den Modul überprüft und erhalte einen anderen Modul für Schlüssel und Zertifikat.
Danke für Ihre Hilfe. :) :)
modulus' and the
Teile des öffentlichen Exponenten im Schlüssel und im Zertifikat müssen übereinstimmen. Zweifellos sind die Dateien unterschiedlich. Der Schlüssel wird für ein bestimmtes Zertifikat generiert.Sobald Sie festgestellt haben, dass sie nicht übereinstimmen, haben Sie immer noch ein Problem - was Sie dagegen tun müssen. Oft kann das Zertifikat nur falsch zusammengestellt werden. Wenn eine Zertifizierungsstelle Ihr Zertifikat signiert, sendet sie Ihnen einen Block, der ungefähr so aussieht
Sie senden Ihnen auch ein Paket (häufig zwei Zertifikate), das ihre Berechtigung darstellt, Ihnen ein Zertifikat zu erteilen. das wird ungefähr so aussehen
außer dass sie leider nicht so deutlich gekennzeichnet sind.
Es ist daher üblich, diese alle in einer Datei zu bündeln - Ihrem Zertifikat und dann den signierenden Zertifikaten. Da sie jedoch nicht leicht zu unterscheiden sind, kommt es manchmal vor, dass jemand sie versehentlich in die andere Reihenfolge bringt - das Signieren von Zertifikaten und dann das endgültige Zertifikat - ohne es zu bemerken. In diesem Fall stimmt Ihr Zertifikat nicht mit Ihrem Schlüssel überein.
Sie können testen, um zu sehen, was das Zertifikat für ausgeführt hält
Oben sehen Sie "Betreff:" und dann Dinge, die Ihren Daten ähneln. Wenn es stattdessen wie Ihre Zertifizierungsstelle aussieht, befindet sich Ihr Bundle wahrscheinlich in der falschen Reihenfolge. Sie könnten versuchen, ein Backup zu erstellen und dann das letzte Zertifikat an den Anfang zu verschieben, in der Hoffnung, dass dies das ist, das Ihr Zertifikat ist.
Wenn dies nicht funktioniert, müssen Sie möglicherweise nur das Zertifikat erneut ausstellen lassen. Wenn ich eine CSR erstelle, möchte ich klar kennzeichnen, für welchen Server sie bestimmt ist (anstatt nur für ssl.key oder server.key) und auf diese Weise eine Kopie mit dem Datum im Namen erstellen, z. B. mydomain.20150306.key usw. Es ist unwahrscheinlich, dass die privaten und öffentlichen Schlüsselpaare mit einem anderen Satz verwechselt werden.
quelle
Überprüfen Sie einen MD5-Hash des öffentlichen Schlüssels, um sicherzustellen, dass er mit dem Inhalt eines privaten Schlüssels übereinstimmt
quelle
Ich hatte dieses Problem, weil ich Bundle und Zertifikat in falscher Reihenfolge hinzugefügt habe, sodass dies möglicherweise jemand anderem helfen könnte.
Vorher (was falsch ist):
Nachher (was richtig ist)
Und bitte vergessen Sie nicht, das entsprechende conf (ssl_certificate muss jetzt auf das verkettete crt zeigen) als zu aktualisieren
Aus der Nginx-Manpage :
quelle
Wenn dies passiert und Sie Let's Encrypt / certbot verwenden, ist der Grund höchstwahrscheinlich, dass Sie
chain.pem
anstelle von verwendet habenfullchain.pem
.Es sollte ungefähr so sein:
Siehe certbot-Dokumente "Wo sind meine Zertifikate?"
quelle
Ich hatte das gleiche Problem und löste es schließlich, indem ich die Reihenfolge der PEM-Blöcke in der Zertifikatdatei änderte.
Der Zertifikatsblock sollte am Anfang der Datei stehen, dann zwischen den Zwischenblöcken und dann am Stammblock.
Ich habe dieses Problem erkannt, indem ich eine problematische Zertifikatdatei mit einer funktionierenden Zertifikatdatei verglichen habe.
quelle
Meine 5 Cent zu diesem Thema:
Ich hatte das gleiche Problem. Nach ungefähr einer Stunde habe ich festgestellt, dass ich das Zertifikat falsch eingefügt habe.
Wenn Sie einen solchen Fehler haben, überprüfen Sie bitte Ihr Zertifikat.
quelle
In meinem Fall wollte ich das SSL-Zertifikat ändern, weil ich meinen Server geändert habe, sodass ich mit diesem Befehl eine neue CSR erstellen musste:
Ich habe die Datei mysite.csr an den SSL-Anbieter der Firma gesendet und nachdem ich das Zertifikat crt erhalten und dann nginx neu gestartet habe, habe ich diesen Fehler erhalten
Nach vielen Untersuchungen war der Fehler, dass das Modul aus der Schlüsseldatei nicht mit dem aus der CRT-Datei identisch war
Damit es funktioniert, habe ich eine neue CSR-Datei erstellt, aber ich muss den Namen der Datei mit diesem Befehl ändern
Dann hatte ich eine neue CRT-Datei vom Firmenanbieter erhalten, nginx neu gestartet und es funktionierte.
quelle
Dies kann auch passieren, wenn Ihre Zertifizierungsstelle ein Zwischenzertifikat ausstellt
Ich bin mit nginx (zweimal) auf dieses Problem gestoßen, und keine der Lösungen in diesem Beitrag hat das Problem erklärt. Der Blog-Beitrag hier von einem netten Gentleman namens Marco hat es geschafft, und ich füge ihn hier für jeden ein, der auch auf das stößt, was ich gesehen habe.https://medium.com/@mrkdsgn/steps-to-install-a-go-daddy-ssl-certificate-on-nginx-on-ubuntu-14-04-ff942b9fd7ff
In meinem Fall war Go-Daddy die Zertifizierungsstelle, und dies hängt davon ab, wie sie das Cert- und das Intermediate-Cert-Bundle ausstellen.
Hier ist der Auszug aus Marcos Blogbeitrag
Wenn Ihre Zertifizierungsstelle bei Nginx ein Zwischenzertifikat enthält, müssen Sie eine einzelne verkettete Zertifikatdatei erstellen, die Ihr Zertifikat und die Zwischenzertifikate der Zertifizierungsstelle enthält.
Mit diesem Befehl können Sie eine kombinierte Datei mit dem Namen example.com.chained.crt erstellen:
cat example.com.crt intermediate.crt > example.com.chained.crt
quelle
In meinem Fall war das Problem, dass ich Zertifikate erstellte, ohne Daten in die CLI-Schnittstelle einzugeben. Als ich Kretifikate regenerierte und alle Felder betrat: Stadt, Staat usw. wurde alles in Ordnung.
quelle
Es ist mir passiert, als ich bundle.crt und Hauptzertifikat kombiniert habe. Der Grund war, dass ich das Hauptzertifikat unter bundle.crt kopiert habe. Es sollte umgekehrt sein
1 / main cert 2 / bundle.crt
quelle
Für Nginx:
openssl req -newkey rsa:2048 -nodes -keyout domain.com.key -out domain.com.csr
SSL-Datei
domain_com.crt
unddomain_com.ca-bundle
Dateien, dann kopieren Sie die neue Datei in Pastedomain.com.chained.crt
.3: Nginx-Dateien hinzufügen:
ssl_certificate /home/user/domain_ssl/domain.com.chained.crt;
ssl_certificate_key /home/user/domain_ssl/domain.com.key;
Spät startet Nginx neu.
quelle
Dieser Fehler kann auftreten, wenn der private Schlüssel des Zertifikats (
ssl_certificate_key
z. B..key
oder die.pem
Datei) nicht mit der öffentlichen Zertifikatdatei (ssl_certificate
) in Ihrer Nginx-Konfiguration übereinstimmt (eincheckennginx.conf
oder einchecken)sites-enabled/
). Stellen Sie sicher, dass beide Dateien übereinstimmen.Überprüfen Sie die Nginx-Fehlerprotokolle auf weitere Details (z
/var/log/nginx/error.log
. B. ).quelle
In meinem Fall muss ich die Zertifikate meiner Domain verketten.
Und in der Konfigurationsdatei /etc/nginx/nginx.conf
Starten Sie den Dienst neu und alles in Ordnung.
Quellschritt 2: https://www.namecheap.com/support/knowledgebase/article.aspx/9781/2238/nginx-ssl-error0b080074x509-certificate-routines-x509checkprivatekeykey-values-mismatch
quelle