SSL-client-Authentifizierung Rückkehr Schlecht Zertifikat Fehler
Ich versuche eine Verbindung zu meinem custom schrieb ssl-server-geschrieben in CPP. Er hat die client-Authentifizierung bietet. Ihre werfen Fehler ungültiges Zertifikat, wenn Sie sah durch Wireshark. Auf der server-Seite der zurückgegebene Fehler war
14560:error:140890B2:SSL routines:SSL3_GET_CLIENT_CERTIFICATE:no certificate returned:s3_srvr.c:2619:
Ich verwendete den folgenden code, um Kraft anfordernden client-Zertifikat
SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, NULL);
SSL_CTX_set_verify_depth(ctx, 1);
Konnte ich sehen, client Rückkehr Zertifikat in Wireshark.
Welche Funktion sollte verwendet werden, um den öffentlichen Schlüssel, der verwendet wird zur überprüfung das client-Zertifikat auf dem server?
InformationsquelleAutor user567879 | 2012-09-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus den Fehlermeldungen es sieht aus wie Ihre client kein Zertifikat server und die von Ihnen ausdrücklich gewünscht, dass ein client benötigt man (im server-code):
Was Sie wahrscheinlich brauchen, ist zu sagen, Ihr client-code zu verwenden-Zertifikat (zusammen mit einem privaten Schlüssel):
Ich hoffe, das hilft.
Stellen Sie außerdem sicher, dass Ihr server verwendet die gleichen Zertifikat-Kette (die er vertraut der gleichen CA). Wenn dies ein problem ist, lassen Sie mich wissen, und ich werde Ihnen helfen, tun.
InformationsquelleAutor sirgeorge
Mit wireshark, finden Sie heraus, ob der server jemals angeforderte Zertifikat für den Klienten. Der Befehl "CertificateRequest".
InformationsquelleAutor CCNA
War ich immer eine ähnliche Fehlermeldung (nur Linie Anzahl unterschiedlich):
140671281543104:Fehler:140890B2:SSL-Routinen:SSL3_GET_CLIENT_CERTIFICATE:Nein Zertifikat zurückgegeben:s3_srvr.c:3292:
Hatte ich generierte selbst signierte Zertifikate, die mit dem Verfahren erwähnt, die in https://help.ubuntu.com/community/OpenSSL.
Nachdem das jonglieren mit dem Fehler für einen Tag, fand ich, dass der Fehler war, weil die selbst erstellte CA wurde nicht in der trust-Kette von der Maschine war ich mit.
Hinzufügen der CA, um die Vertrauenskette in RHEL-7, kann man Folgen Sie der unten aufgeführten Prozedur:
Denke ich, dass das oben beschriebene Verfahren kann gefolgt werden, für fedora auch.
Wenn "update-ca-trust" - Befehl ist nicht verfügbar, es könnte nützlich sein, zu erforschen, die Befehle wie "update-ca-certificates".
Hoffe, dies wird nützlich sein, um jemanden.
InformationsquelleAutor Swaru
Unterschied Zwischen SSLCACertificateFile und SSLCertificateChainFile
SSLCertificateChainFile ist in der Regel die richtige option zu wählen, wie es am wenigsten beeinträchtigt; es bewirkt, dass die angegebene Datei gesendet werden zusammen mit dem Zertifikat auf allen clients, die eine Verbindung herstellen.
Alle die Root-CA werden in der folgenden Datei um das Problem zu beheben
SSLCACertificateFile (nachfolgend "CACert") hat alles, was SSLCertificateChainFile hat (nachfolgend "Kette"), und zusätzlich erlaubt die Nutzung des cert in Frage zu Schild-client-Zertifikate. Diese Art der Authentifizierung ist sehr selten (zumindest für den moment), und wenn Sie ihn nicht benutzen, es gibt IMHO keinen Grund, um zu erhöhen Ihre Funktionalität durch die Verwendung von CACert statt Kette. Auf der anderen Seite könnte man argumentieren, dass es keinen Schaden in der zusätzlichen Funktionalität, und CACert deckt alle Fälle ab. Beide Argumente sind gültig.
Unnötig zu sagen, wenn Sie Fragen der cert Verkäufer, werden Sie immer push für CACert über Kette, da es gibt Ihnen eine andere Sache (client-certs), dass Sie potentiell verkaufen Sie auf der ganzen Linie. 😉
InformationsquelleAutor Ranjan