OpenSSL continua me dizendo 'incapaz de obter certificado de emissor local'

4

Estou usando o CentOS, que tem o OpenSSL 1.0.2k-fips instalado, e construí e instalei a versão 1.1.0g junto com ele como parte de uma instalação HTTP2 descrita aqui: link

Eu tenho usado o 1.1.0g bem, mas recentemente eu renovei os certificados e agora parece perdido ao tentar verificar a CA. A localização do arquivo CA não mudou, a versão 1.0.2k-fips parece bem com ele, mas 1.1.0g não passou reclamando:

Verify return code: 20 (unable to get local issuer certificate)

Então, eu verifiquei que os certificados são bons, o local não mudou, eu não alterei manualmente nenhuma configuração.

Eu imaginei que talvez eu deva reconstruir o 1.1.0g, mas isso não muda nada. Eu também tentei usar a opção -CApath para o comando openssl , assim (usando o mesmo diretório que usa 1.0.2k-fips):

echo | /usr/local/ssl/bin/openssl s_client -connect example.com:443 -CApath /etc/pki/tls

Eu também tentei -CAfile , apontando diretamente para o ca-bundle.crt que eu sei que tem os certificados corretos (1.0.2k-fips os usa sem problemas), ainda sem alteração.

Eu não tenho ideia de por que ele não vai pegar meus certificados, e me pergunto se esse problema já existia antes de eu trocar os certificados (eu verifiquei se eles funcionavam depois de trocá-los, seria possível 1.1.0g era já quebrado nesse ponto).

Estou pensando que isso pode ser devido a atualizações realizadas no sistema, quebrando algum link ou arquivo, mas onde procurar quando o material de certificado estiver normal? Ou é 1.1.0g faltando alguns outros / mais certs que preciso apontar para ele?

    
por kasimir 09.03.2018 / 11:29

1 resposta

0

Você pode obter s_client para mostrar a cadeia de certificados com -showcerts :

openssl s_client -connect example.com:443 -showcerts </dev/null

Isso iniciará com a cadeia de certificados e mostrará outras informações sobre o certificado do servidor e a conexão TLS. Tudo isso deve ajudá-lo a descobrir onde está o problema. Pode estar em um certificado intermediário, não na CA.

Você pode obter um resumo rápido da cadeia de certificados, filtrando a saída:

openssl s_client -connect example.com:443 -showcerts </dev/null 2>/dev/null |
sed -e '1,/Certificate chain/d' -e '/BEGIN CERTIFICATE/,/END CERTIFICATE/d' -e '/---/,$d'
    
por 09.03.2018 / 21:23