Ich habe mit openssl ein Zertifikat generiert und es auf dem Computer des Clients abgelegt. Wenn ich jedoch versuche, mit diesem Zertifikat eine Verbindung zu meinem Server herzustellen, wird in der Betreffzeile ein Fehler von meinem Server zurück erwähnt.
Folgendes habe ich getan.
1) Ich führe eine Testverbindung mit openssl durch, um festzustellen, welche CA-Namen für Client-Zertifikate für meinen Server zulässig sind. Ich gebe diesen Befehl von meinem Client-Computer an meinen Server aus:
openssl s_client -connect myupload.mysite.net:443/cgi-bin/posupload.cgi -prexit
und ein Teil von dem, was ich zurück bekomme, ist wie folgt:
Acceptable client certificate CA names
/C=US/ST=Colorado/L=England/O=Inteliware/OU=Denver Office/CN=Tim Drake/[email protected]
/C=US/ST=Colorado/O=Inteliware/OU=Denver Office/CN=myupload.mysite.net/[email protected]
2) In der Apache-Konfigurationsdatei auf dem Server finden Sie Informationen zur SSL-Clientauthentifizierung:
SSLCACertificatePath /etc/apache2/certs
SSLVerifyClient require
SSLVerifyDepth 10
3) Ich habe mit mypos.pem und mypos.key ein selbstsigniertes Client-Zertifikat mit dem Namen "client.pem" erstellt. Wenn ich also diesen Befehl ausführe:
openssl x509 -in client.pem -noout -issuer -subject -serial
Hier ist, was zurückgegeben wird:
issuer= /C=US/ST=Colorado/O=Inteliware/OU=Denver Office/CN=myupload.mysite.net/[email protected]
subject= /C=US/ST=Colorado/O=Inteliware/OU=Denver Office/CN=mlR::mlR/[email protected]
serial=0E
(Bitte beachten Sie, dass sich mypos.pem in / etc / apache2 / certs / befindet und mypos.key in / etc / apache2 / certs / private / gespeichert ist.)
4) Ich habe client.pem auf dem Client-Computer abgelegt und auf dem Client-Computer den folgenden Befehl ausgeführt:
openssl s_client -connect myupload.mysite.net:443/cgi-bin/posupload.cgi -status -cert client.pem
und ich bekomme diesen Fehler:
CONNECTED(00000003)
OCSP response: no response sent
depth=1 /C=US/ST=Colorado/L=England/O=Inteliware/OU=Denver Office/CN=Tim Drake/[email protected]
verify error:num=19:self signed certificate in certificate chain
verify return:0
574:error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca:/SourceCache/OpenSSL098/OpenSSL098-47/src/ssl/s3_pkt.c:1102:SSL alert number 48
574:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:/SourceCache/OpenSSL098/OpenSSL098-47/src/ssl/s23_lib.c:182:
Ich bin wirklich ratlos darüber, was ich falsch gemacht habe. Ich habe ziemlich viel nach diesem Fehler gesucht und festgestellt, dass die ausstellende Zertifizierungsstelle des Client-Zertifikats vom Server nicht als vertrauenswürdig eingestuft wird. Wenn ich mir jedoch den Aussteller meines Client-Zertifikats anschaue, stimmt er mit einem der Fehler überein Die akzeptierte Zertifizierungsstelle, die von meinem Server zurückgegeben wurde.
Kann mir bitte jemand helfen?
Vielen Dank im Voraus.
quelle
Ich habe festgestellt, dass der Befehl "sudo update-ca-certificates --fresh" automatisch symbolische Links vom Betreff-Hashwert jedes Zertifikats zum Zertifikat generiert.
quelle
Hallo, haben Sie versucht, den folgenden Befehl auszuführen:
Beachten Sie die Überprüfung 1 . Es sagt ssl, wie tief es gehen muss, und ich denke, dies könnte das Problem sein, das Sie in Ihrer Apache-Konfiguration haben. Versuchen Sie, die Apache-Konfiguration festzulegen.
Prost, Dexter
quelle