Se você tiver acesso ao OpenSSL, tente
openssl s_client -connect {HOSTNAME}:{PORT} -showcerts
substituindo {HOSTNAME} e {PORT} pelos seus valores.
Eu preciso baixar um certificado SSL de um servidor remoto (não HTTPS, mas o handshake SSL deve ser o mesmo do Google Chrome / IE / wget e enrolar todos os erros de verificação de verificação de certificado) e adicionar o certificado como confiável na minha laptops Armazenamento de certificados do Windows, já que não consigo que meus funcionários de TI me forneçam o certificado da CA.
isto é para comunicações de escritório, por isso não posso realmente usar o cliente real para obter o certificado.
Como faço isso, tenho o Windows 7 e uma pilha de Linuxes úteis para que qualquer linguagem de ferramenta / script seja adequada.
Um método rápido para obter o certificado puxado e baixado seria executar o seguinte comando que canaliza a saída do comando -showcerts para o comando x509 ssl, o qual simplesmente retira tudo o que é externo. Por exemplo:
openssl s_client -showcerts -connect server.edu:443 </dev/null 2>/dev/null|openssl x509 -outform PEM >mycertfile.pem
Para usar o certificado, com wget,
wget https:/server.edu:443/somepage --ca-certificate=mycertfile.pem
Para ser honesto, eu nunca tentei isso antes (nunca precisei), no entanto, eu apenas tentei no Firefox e parece funcionar para salvar:
View Certificate
Details
Export
Exportando um certificado usando o navegador Google Chrome
2. Clique no símbolo de bloqueio e, em seguida, clique em Detalhes
Desde a versão 56 do Chrome, você faz o seguinte: vá para o menu Três pontos - > Mais ferramentas - > Ferramentas do desenvolvedor e, em seguida, clique na guia Segurança. Isso fornecerá uma visão geral de segurança com um botão Visualizar certificado .
Clique no botão Ver certificado .
Uma janela modal será aberta. Tem dois painéis. A parte superior mostra a hierarquia de confiança do certificado do site (o último listado), o certificado intermediário e o certificado raiz (o mais alto).
O segundo painel, maior, mostra os detalhes de um dos certificados.
Pode haver zero ou mais certificados intermediários.
Observe que o certificado raiz tem um ícone com borda dourada. Os outros têm uma borda azul.
Veja a captura de tela abaixo.
Para exportar um certificado:
Esta é a resposta do gbroiles , mas eu queria ressaltar que o projeto cURL possui uma página com mais alguns detalhes sobre o uso de openssl
para salvar o certificado SSL do servidor remoto:
openssl s_client -connect {HOSTNAME}:{PORT} | tee logfile
QUIT
e pressione a tecla Enter / Return. Se você quiser ver os dados no certificado, use:
openssl x509 -inform PEM -in certfile -text -out certdata
em que certfile
é o certificado extraído de logfile
. Procure em certdata
.
automatizado
-servername foi necessário para eu obter o certificado certo do host virtual em nosso servidor.
openssl s_client -showcerts -connect host.name.com:443 -servername host.name.com </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > host.name.com.pem
você também pode converter em um certificado para desktop
openssl x509 -inform PEM -in host.name.com.pem -outform DER -out host.name.com.cer
última parte é adicioná-lo ao seu certs, não é certo no windows
para mac keychain eu usei, deveria ser semelhante ...
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain host.name.com.cer
Isso fornecerá os resultados contendo apenas os certificados
echo QUIT | \
openssl s_client -showcerts -connect hostname:port | \
awk '/-----BEGIN CERTIFICATE-----/ {p=1}; p; /-----END CERTIFICATE-----/ {p=0}' "
Tags ssl certificate