Lösen eines sslv3-Warnungs-Handshake-Fehlers, wenn versucht wird, ein Client-Zertifikat zu verwenden

Ich versuche, eine Verbindung zu einem Dienst herzustellen, für dessen Autorisierung ein Zertifikat erforderlich ist. Dabei sende ich dem Service eine CSR-Datei. Der Dienst signiert den CSR und sendet mir ein Zertifikat, das ich für die Verbindung verwende.

Ich habe die CSR über die folgende Befehlszeile generiert:

openssl req -new -nodes -newkey rsa:2048 -keyout cert.key -out cert.csr

Ich habe den Inhalt der cert.csr genommen und an sie gesendet. Sie generieren das Client-Zertifikat und ich habe eine PEM-Datei zurückbekommen.

Ich versuche jetzt, eine Verbindung mit der Zertifikatdatei in SSLCERT for curl () herzustellen und den privaten Schlüssel aus cert.key als CURLOPT_SSLKEY bereitzustellen (den ich in Schritt 1 erhalten habe).

Scheitert mit:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure

Was mache ich falsch in diesem Prozess?

Es klapp wenn ich mit einem versuch ein testzertifikat mit privatem schlüssel vom dienst erhalten habe (selbst signiertes zertifikat). Wenn ich jedoch ein Zertifikat verwende, das von meinem CSR erstellt wurde, und dann meinen privaten Schlüssel als Schlüssel verwende, tritt ein Fehler auf, wenn der Handshake fehlschlägt.

So weiß ich, dass es nichts damit zu tun hat, dass openssl / curl v3 / TLS usw. nicht unterstützt, was andere bei der Suche nach einer Lösung festgestellt haben.

Hier ist was ich laufe:

  curl -i -v --request POST https://service.com/ --cert clientcert.pem --key private_key.pem --cert-type pem --tlsv1.1 --insecure
* Connected to service.com (1xx.xxx.xxx.xx) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server key exchange (12):
* SSLv3, TLS handshake, Request CERT (13):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS handshake, CERT verify (15):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS alert, Server hello (2):
* error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
* Closing connection 0

Führen Sie die folgenden Versionen aus: curl 7.35.0 (x86_64-pc-linux-gnu) libcurl / 7.35.0 OpenSSL / 1.0.1f zlib / 1.2.8 libidn / 1.28 librtmp / 2.3

Antworten auf die Frage(4)

Ihre Antwort auf die Frage