Desviar ou enrolar um certificado autoassinado do servidor

1

Do meu navegador, posso navegar até uma máquina na intranet local de minhas empresas e (depois de marcar o certificado como confiável) exportar esse certificado para um arquivo. Eu estou tentando automatizar este processo em um shellscript para que eu possa tornar minha vida um pouco mais fácil ao usar várias ferramentas de linha de comando sem jogar segurança pela janela.

Tentar pesquisar no Google sobre este tópico tem sido difícil e produziu principalmente resultados sobre como confiar em um certificado que você já baixou enquanto usava wget ou curl, mas não é o que preciso neste caso. Como posso baixar o certificado auto-assinado público do servidor para um arquivo local via wget ou curl?

    
por Paul Nelson Baker 10.06.2014 / 00:08

1 resposta

4

Não tenho certeza sobre o wget ou o curl, mas o seguinte funciona se você estiver preocupado apenas com a chave pública.

openssl s_client -connect hostname.domain.tld:port 2>&1 </dev/null | sed -ne '/BEGIN CERT/,/END CERT/p'

Geralmente, quando eles estão falando sobre o download do certificado, ele seria o certificado raiz. Você pode encontrar o da Verisign com o seguinte comando e, em seguida, enviar ou curvar o certificado raiz ao sistema para autenticar com certificados Verisign. Neste caso, é especificamente a raiz "VeriSign Classe 3 Extended Validation SSL SGC CA".

$ openssl s_client -connect verisign.com:443 2>&1 </dev/null | openssl x509 -noout -text | grep "CA Issuers"
            CA Issuers - URI:http://EVIntl-aia.verisign.com/EVIntl2006.cer

O comando acima deve funcionar para praticamente qualquer servidor que exiba um certificado encadeado.

    
por 10.06.2014 / 00:18