Die erste Fehlermeldung informiert Sie über das Problem:
Überprüfungsfehler: num = 20: Lokales Ausstellerzertifikat kann nicht abgerufen werden
Die ausstellende Zertifizierungsstelle des Endentitätsserverzertifikats ist
VeriSign Class 3 Secure Server CA - G3
Schauen Sie in Ihrer CA-Datei genau nach - Sie werden dieses Zertifikat nicht finden, da es sich um eine Zwischen-CA handelt. Sie haben festgestellt, dass es sich um eine G3 Public Primary CA von VeriSign mit ähnlichem Namen handelt .
Aber warum ist die andere Verbindung erfolgreich, diese jedoch nicht? Das Problem ist eine Fehlkonfiguration der Server (überzeugen Sie sich selbst von der -debug
Option). Der "gute" Server sendet während des Handshakes die gesamte Zertifikatkette und stellt Ihnen so die erforderlichen Zwischenzertifikate zur Verfügung.
Der fehlerhafte Server sendet Ihnen jedoch nur das Endentitätszertifikat, und OpenSSL kann das fehlende Zwischenzertifikat nicht "on the fly" herunterladen (was durch Interpretation der Authority Information Access-Erweiterung möglich wäre). Daher schlägt Ihr Versuch fehl, s_client
aber es wäre trotzdem erfolgreich, wenn Sie mit FireFox (das die Funktion "Zertifikatserkennung" unterstützt) zur gleichen URL navigieren.
Sie können das Problem entweder auf der Serverseite beheben, indem der Server auch die gesamte Kette sendet, oder indem Sie das fehlende Zwischenzertifikat als clientseitigen Parameter an OpenSSL übergeben.
-CAfile /etc/ssl/certs/ca-certificates.crt
grep -riE 'virtualhost|server(name|alias)' /etc/httpd
Hinzufügen zusätzlicher Informationen zur Antwort von Emboss.
Einfach ausgedrückt enthält Ihre Zertifikatskette ein falsches Zertifikat.
Zum Beispiel hat Ihre Zertifizierungsstelle Ihnen höchstwahrscheinlich 3 Dateien gegeben.
Sie haben höchstwahrscheinlich alle diese Dateien zu einem Bundle zusammengefasst.
Wenn Sie das Bundle erstellen, aber eine alte oder eine falsche Version Ihres Zwischenzertifikats (in meinem Beispiel DigiCertCA.crt) verwenden, erhalten Sie genau die Symptome, die Sie beschreiben.
Laden Sie alle Zertifikate von Ihrer Zertifizierungsstelle erneut herunter und erstellen Sie ein neues Paket.
quelle
Ich bin auf dasselbe Problem gestoßen, als ich mein signiertes Zertifikat auf einer Amazon Elastic Load Balancer-Instanz installiert habe.
Alle schienen über einen Browser (Chrome) gefunden zu werden, aber der Zugriff auf die Site über meinen Java-Client erzeugte die Ausnahme javax.net.ssl.SSLPeerUnverifiedException
Was ich nicht getan hatte, war die Bereitstellung einer "Zertifikatketten" -Datei bei der Installation meines Zertifikats auf meiner ELB-Instanz (siehe /server/419432/install-ssl-on-amazon-elastic-load-balancer-with -godaddy-wildcard-zertifikat )
Wir haben unseren signierten öffentlichen Schlüssel nur von der Signaturbehörde erhalten, sodass ich meine eigene Zertifikatskettendatei erstellen musste. Über die Zertifikatanzeige meines Browsers habe ich jedes Zertifikat in der Signaturkette exportiert. (Die Reihenfolge der Zertifikatskette ist wichtig, siehe https://forums.aws.amazon.com/message.jspa?messageID=222086 )
quelle
Folgendes können Sie tun:
Exim SSL-Zertifikate
Standardmäßig verwendet die Datei /etc/exim.conf die Zertifikats- / Schlüsseldateien:
Wenn Sie sich also fragen, wo Sie Ihre Dateien einstellen sollen, ist dies der richtige Ort.
Sie werden von den Optionen der exim.conf gesteuert:
Zwischenzertifikate
Wenn Sie über ein CA-Stammzertifikat (CA-Bundle, Kette usw.) verfügen, fügen Sie den Inhalt Ihrer CA nach Ihrem eigentlichen Zertifikat in die Datei exim.cert ein.
Wahrscheinlich eine gute Idee, um sicherzustellen, dass Sie eine Kopie von allem an anderer Stelle haben, falls Sie einen Fehler machen.
Dovecot und ProFtpd sollten es auch korrekt lesen, sodass Dovecot die Option ssl_ca nicht mehr benötigt. In beiden Fällen müssen weder an der exim.conf noch an der dovecot.conf (/etc/dovecot/conf/ssl.conf) Änderungen vorgenommen werden.
quelle
Wenn Sie MacOS verwenden, verwenden Sie:
Nach diesem Trust Anker nicht gefunden Fehler verschwindet
quelle