Solución de fallas en el protocolo de enlace de alerta sslv3 al intentar usar un certificado de cliente

Estoy tratando de conectarme a un servicio que requiere un certificado para la autorización. El proceso es que le envío al servicio un archivo CSR. El servicio firma el CSR y me envía un certificado que uso para la conexión.

Generé la CSR mediante la siguiente línea de comando:

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

Tomé el contenido del cert.csr y se lo envié. Generan el certificado del cliente y obtuve un archivo PEM.

Ahora trato de conectarme usando su archivo de certificado en SSLCERT para curl () y proporcionando la clave privada de cert.key como CURLOPT_SSLKEY - (que obtuve en el paso 1).

Falla con:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure

¿Qué estoy haciendo mal en este proceso?

Funciona cuando intento con un certificado de prueba recibido que incluye una clave privada del servicio (certificado autofirmado). Pero cuando uso un certificado que generaron a partir de mi CSR y luego uso mi clave privada como clave, se produce un error con la falla del apretón de manos.

Así que sé que no tiene nada que ver con que openssl / curl no sea compatible con v3 / TLS, etc., que otros al investigar una solución descubrieron que su problema era.

Esto es lo que ejecuto:

  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

Ejecutando las siguientes versiones: 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

Respuestas a la pregunta(2)

Su respuesta a la pregunta