Em primeiro lugar, sei que há muitas questões relacionadas, mas parece que a maioria delas se deve à falta de certificados do emissor no servidor.
eu tenho acompanhadoeste guiapara ativar a autenticação do cliente com SSL, mas não consigo fazer com que o Apache aceite o certificado do cliente. Após uma inspeção mais detalhada, os logs do Apache são preenchidos com Certificate Verification: Error (20): unable to get local issuer certificate
mensagens.
Estou usando um certificado fornecido por uma CA e minha chave privada como CA.
Para diagnosticar melhor o problema, executei openssl verify -CAfile ca.cert client_signed.crt
e recebi o mesmo erro.
Decido refazer todas as etapas. No entanto, fazer tudo na linha de comando ainda retorna o mesmo erro
$ 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 o problema, decido gerar e autoassinar um certificado para ser usado como CA para assinar o certificado do cliente. Para minha surpresa,isso funcionou perfeitamente. Na verdade, esta é a primeira etapa do tutorial que vinculei.
Aparentemente, o problema está relacionado ao meu certificado. Suspeito que deve haver algo relacionado à Cadeia de Confiança, já que não tenho o certificado da CA que assinou meu próprio certificado. tentei baixá-losdo site delesmas não consigo nem verificar meu próprio 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
Qualquer ajuda será muito apreciada.
Editar: usar o utilitário "View File" no Ubuntu indica que meu certificado foi Verified by: Correo Uruguayo - CA
. Não sei por que o openssl não consegue verificá-lo.