openssl s_client zeigt ein unbekanntes Warnungszertifikat an, aber alle Serverzertifikate scheinen überprüft zu sein

8

Ich behebe Fehler beim Herstellen einer sicheren Verbindung zu einem EPP-Server. Ich gebe den folgenden Befehl aus und sehe, dass alle Serverzertifikate überprüft wurden, aber ich erhalte trotzdem eine Fehlermeldung (fett hervorgehoben). Gibt es immer noch ein Problem beim Überprüfen der Serverzertifikate? Wenn ja, was könnte es sein?

Bearbeiten: Ich habe die "Akzeptablen Clientzertifikat-CA-Namen" abgeschnitten, weil der Spam-Detektor sie nicht mochte.

$ openssl s_client -connect otessl.verisign-grs.com:700 -key /home/ubuntu/foo.key -cert /home/ubuntu/foo.crt -CAfile /home/ubuntu/foo-cert-chain.pem  -CApath /etc/ssl/certs

CONNECTED(00000003)
depth=3 C = US, O = "VeriSign, Inc.", OU = Class 3 Public Primary Certification Authority
verify return:1
depth=2 C = US, O = "VeriSign, Inc.", OU = VeriSign Trust Network, OU = "(c) 2006 VeriSign, Inc. - For authorized use only", CN = VeriSign Class 3 Public Primary Certification Authority - G5
verify return:1
depth=1 C = US, O = "VeriSign, Inc.", OU = VeriSign Trust Network, OU = Terms of use at https://www.verisign.com/rpa (c)06, CN = VeriSign Class 3 Extended Validation SSL CA
verify return:1
depth=0 1.3.6.1.4.1.311.60.2.1.3 = US, 1.3.6.1.4.1.311.60.2.1.2 = Delaware, businessCategory = Private Organization, serialNumber = 2497886, C = US, postalCode = 20190, ST = Virginia, L = Reston, street = 12061 Bluemont Way, O = "Verisign, Inc", OU = Production Operations, CN = otessl.verisign-grs.com
verify return:1
<b>
140403406833312:error:14094416:SSL routines:SSL3_READ_BYTES:sslv3 alert certificate unknown:s3_pkt.c:1260:SSL alert number 46
140403406833312:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:177:
</b>
---
Certificate chain
 0 s:/1.3.6.1.4.1.311.60.2.1.3=US/1.3.6.1.4.1.311.60.2.1.2=Delaware/businessCategory=Private Organization/serialNumber=2497886/C=US/postalCode=20190/ST=Virginia/L=Reston/street=12061 Bluemont Way/O=Verisign, Inc/OU=Production Operations/CN=otessl.verisign-grs.com
   i:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa (c)06/CN=VeriSign Class 3 Extended Validation SSL CA
 1 s:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa (c)06/CN=VeriSign Class 3 Extended Validation SSL CA
   i:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G5
 2 s:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G5
   i:/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
---
Server certificate
-----BEGIN CERTIFICATE-----
*snipped*
-----END CERTIFICATE-----
subject=/1.3.6.1.4.1.311.60.2.1.3=US/1.3.6.1.4.1.311.60.2.1.2=Delaware/businessCategory=Private Organization/serialNumber=2497886/C=US/postalCode=20190/ST=Virginia/L=Reston/street=12061 Bluemont Way/O=Verisign, Inc/OU=Production Operations/CN=otessl.verisign-grs.com
issuer=/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa (c)06/CN=VeriSign Class 3 Extended Validation SSL CA
---
Acceptable client certificate CA names
*snipped - will post if needed*
---
SSL handshake has read 10228 bytes and written 4199 bytes
---
New, TLSv1/SSLv3, Cipher is RC4-MD5
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : RC4-MD5
    Session-ID: 544D9C743C278DCE0AA4715E68CA7C7A3443F3596495EA3A27448B9F3E0AC575
    Session-ID-ctx: 
    Master-Key: 77E6E234FE7313C50C04B7C8F32B0D6C9B6520A114DA4253A97FF1C200544EBB21DBC2C7ECA45DF0546A27EFB466EF4F
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1414372468
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---
shampoopy
quelle
In der EVP-Welt gibt es viele Variationen: Einige Registrierungen generieren Zertifikate für Sie (und daher können Sie nur eine Verbindung damit herstellen), andere Registrierungen akzeptieren alle Zertifikate aus einer Liste von Zertifizierungsstellen (die Liste ist pro Registrierung willkürlich, z. B. a Lassen Sie uns verschlüsseln, ob es funktioniert oder nicht), einige andere Registrierungen führen außerdem explizit eine Whitelist für Ihr Client-Zertifikat durch (Sie müssen sich also jedes Mal an sie wenden, wenn Sie es ändern).
Patrick Mevzek

Antworten:

9

Sie erhalten den Fehler certificate unknownvom Server, sodass er sich auf die Validierung Ihres Clientzertifikats auf der Serverseite und nicht auf die (erfolgreiche) Validierung des Serverzertifikats auf der Clientseite bezieht. Das bedeutet, dass der Server Ihr Client-Zertifikat nicht mag.

Überprüfen Sie Ihr Client-Zertifikat anhand der Liste der zulässigen Zertifizierungsstellen, stellen Sie sicher, dass es nicht widerrufen wird, und führen Sie möglicherweise einen tcpdump / wireshark durch, um sicherzustellen, dass es tatsächlich an den Server gesendet wird. Wenn dies nicht hilft, überprüfen Sie möglicherweise die Protokolldateien auf der Serverseite auf Anzeichen dafür, was schief gelaufen ist.

Steffen Ullrich
quelle
Vielen Dank. Ja, es stellte sich heraus, dass das Client-Zertifikat nicht von einer der genehmigten Zertifizierungsstellen signiert wurde. Die Liste der CA-Namen für akzeptable Clientzertifikate hätte mir gesagt, dass ich denke. In diesem Fall ergab die Dokumentation für den serverseitigen Endpunkt jedoch, dass nur ein bestimmter Satz von Client-Zertifikaten funktionieren würde. Habe eines davon und es hat funktioniert. Wie können Sie zum späteren Nachschlagen sicher sein, dass der Fehler "Zertifikat unbekannt" vom Server kam? Liegt es daran, dass es nach SSL3_READ_BYTES angezeigt wurde, was bedeutet, dass die Antwort vom Server gelesen wurde?
Shampoopy
"..Ist es, weil es nach SSL3_READ_BYTES erschien ..." - Ja, das ist richtig.
Steffen Ullrich
@SteffenUllrich, Bei Verwendung eines Platzhalterzertifikats zum Beispiel * .abcnet.abc.com wird "SSL-Bibliotheksfehler: Fehler: 14094416: SSL-Routinen: ssl3_read_bytes: sslv3-Warnzertifikat unbekannt" angezeigt. Für Domains wie "xyz.abcnet.abc.com" gibt es jedoch keinen solchen Fehler. Irgendwelche Ideen dazu. Vielen Dank.
Rohit Gaikwad
@RohitGaikwad: Bitte stellen Sie keine neue Frage in einem Kommentar zu einer Antwort. Niemand wird dort neue Fragen und Antworten erwarten, so dass hilfreiche Informationen für andere verloren gehen. Bitte stellen Sie stattdessen eine neue Frage, die auch alle Details enthält, die zum Verständnis und zur Reproduktion Ihres Problems erforderlich sind.
Steffen Ullrich
2

In meinem Fall

Fehler: 14094416: SSL-Routinen: SSL3_READ_BYTES: sslv3-Warnungszertifikat unbekannt: s3_pkt.c: 1260: SSL-Warnungsnummer 46

wurde durch Hinzufügen gelöst

ssl_verify_client_cert = yes

in /etc/dovecot/dovecot.conf .

user526699
quelle
In meinem Fall musste es genau das Gegenteil sein:ssl_verify_client_cert = no
KittMedia
1

Ich habe gerade etwas Ähnliches erlebt.

Möglicherweise haben Sie vergessen, die CA-Zertifikate zu installieren.

Wenn Sie Ubuntu oder Debian verwenden: apt-get install ca-certificates

Mike
quelle
0

In meinem Fall schätzten die Clients es nicht, TLS ausführen zu müssen, waren aber warm und verschwommen, als wir "SSLProtocol + SSLv3" auf dem https-Server hinzufügten: |

AX Labs
quelle
1
SSLv3 ist veraltet ( tools.ietf.org/html/rfc7568 ), weil es grundsätzlich unsicher ist ( blog.mozilla.org/security/2014/10/14/… ). Sind Sie Kunden bewusst, dass ihre Daten nicht sicher sind?
Andrew Henle
1
Ich weiß, dass es abgeschrieben ist. Oh schau, eine Wolke ... ┏ (; -_-) ┛
AX Labs
1
In diesem Stadium sollten Sie einfach den gesamten TLS-Stack schließen und zu rein verschlüsselten Verbindungen zurückkehren. Die Illusion von Sicherheit ist weitaus schlimmer als gar keine Sicherheit.
Patrick Mevzek
Gehen Sie zurück zu reinen unverschlüsselten Verbindungen, ich wollte offensichtlich schreiben.
Patrick Mevzek