¿La verificación de OpenSSL falla con el certificado firmado por CA pero no con el certificado autofirmado?

¿La verificación de OpenSSL falla con el certificado firmado por CA pero no con el certificado autofirmado?

En primer lugar, sé que hay muchas preguntas relacionadas, pero parece que la mayoría se debe a la falta de certificados de emisor en el servidor.

he estado siguiendoesta guíapara habilitar la autenticación del cliente con SSL, pero no puedo lograr que Apache acepte el certificado del cliente. Tras una inspección más cercana, los registros de Apache están llenos de Certificate Verification: Error (20): unable to get local issuer certificatemensajes.

Estoy usando un certificado que me ha otorgado una CA y mi clave privada como CA.

Para diagnosticar mejor el problema, ejecuté openssl verify -CAfile ca.cert client_signed.crty obtuve el mismo error.

Decido rehacer todos los pasos. Sin embargo, hacer todo desde la línea de comando sigue arrojando el mismo error.

$ openssl x509 -req -days 360 -in client.csr -CA ca.cert -CAkey ca.key -CAcreateserial -out client_signed.crt
Signature ok
subject= ...
Getting CA Private Key
Enter pass phrase for server.key:
[I type in the password and press ENTER]
$ openssl verify -CAfile ca.cert client_signed.crt
[ .. ]
error 20 at 0 depth lookup:unable to get local issuer certificate
$ ls ca.cert
ca.cert

Para diagnosticar completamente el problema, decido generar y autofirmar un certificado que se utilizará como CA para firmar el certificado del cliente. Para mi sorpresa,esto funcionó perfectamente. En realidad, este es el primer paso del tutorial que he vinculado.

Al parecer, el problema está relacionado con mi certificado. Sospecho que debe haber algo relacionado con la Cadena de Confianza ya que no tengo el certificado de la CA que firmó mi propio certificado. Intenté descargarlosdesde su sitio webpero ni siquiera puedo verificar mi propio certificado.

$ ls /path/to/downloaded/files/
acrn.cer  ancca.crt  CorreoUruguayoCA.crt  CorreoUruguayoRootCA.crt
$ openssl verify -CApath /path/to/downloaded/files/ my.cert
error 20 at 0 depth lookup:unable to get local issuer certificate

Cualquier ayuda será apreciada.

Editar: el uso de la utilidad "Ver archivo" en Ubuntu indica que mi certificado ha sido Verified by: Correo Uruguayo - CA. No estoy seguro de por qué openssl no puede verificarlo.

información relacionada