Resolvendo falha de handshake de alerta sslv3 ao tentar usar um certificado de cliente

Estou tentando me conectar a um serviço que requer um certificado para autorização. O processo é que eu envio ao serviço um arquivo CSR. O serviço assina o CSR e me envia um certificado que eu uso para conexão.

Eu gerei o CSR pela seguinte linha de comando:

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

Peguei o conteúdo do cert.csr e enviei a eles. Eles geram o certificado do cliente e recebi um arquivo PEM de volta.

Agora, tento conectar usando o arquivo de certificado no SSLCERT para curl () e fornecendo a chave privada do cert.key como CURLOPT_SSLKEY - (que cheguei na etapa 1).

Falha com:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure

O que estou fazendo de errado nesse processo?

Funciona quando tento receber um certificado de teste, incluindo uma chave privada do serviço (certificado autoassinado). Mas quando eu uso um certificado que eles geram a partir do meu CSR e, em seguida, usam minha chave privada como chave, ocorre um erro na falha do handshake.

Então, eu sei que isso não tem nada a ver com o fato de o openssl / curl não suportar v3 / TLS, etc.

Aqui está o que eu corro:

  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

Executando as seguintes versões: 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

questionAnswers(2)

yourAnswerToTheQuestion