Estoy buscando alguna aclaración sobre los requisitos de confianza (si los hay) de los certificados de los clientes.
Estoy trabajando con un tercero para acceder a sus servicios a través de Mutual TLS.
Genero un CSR, lo envío a un tercero, me envían un certificado (que han generado utilizando su propia CA). Es un solo certificado. No se me han proporcionado certificados intermedios, ya que supongo que no los necesita para emitir solicitudes autenticadas de certificados de clientes .
Cuando intento conectarme con este certificado, aparece un error de protocolo de enlace:
openssl s_client -connect the-server.com:443 -cert the-cert.pem -key the-key.pem -state
CONNECTED(00000003)
SSL_connect:before/connect initialization
SSL_connect:SSLv2/v3 write client hello A
SSL_connect:SSLv3 read server hello A
depth=2 /C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G5
verify error:num=20:unable to get local issuer certificate
verify return:0
SSL_connect:SSLv3 read server certificate A
SSL_connect:SSLv3 read server certificate request A
SSL_connect:SSLv3 read server done A
SSL_connect:SSLv3 write client certificate A
SSL_connect:SSLv3 write client key exchange A
SSL_connect:SSLv3 write certificate verify A
SSL_connect:SSLv3 write change cipher spec A
SSL_connect:SSLv3 write finished A
SSL_connect:SSLv3 flush data
SSL3 alert read:fatal:handshake failure
SSL_connect:failed in SSLv3 read finished A
78460:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-59/src/ssl/s3_pkt.c:1145:SSL alert number 40
78460:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-59/src/ssl/s23_lib.c:185:
Me han dicho que está fallando: 'los archivos pem no contienen los certificados de CA públicos que firmaron el certificado del cliente' sin embargo, si este fuera el caso, ¿el cliente incluso enviaría Certificado (como parece que lo está haciendo en los pasos de negociación de TLS anteriores) si fuera el caso en el que tenía que confiar en él.