Como salvar um certificado SSL do servidor remoto localmente como um arquivo

273

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.

    
por Kimvais 18.01.2010 / 08:43

7 respostas

263

Se você tiver acesso ao OpenSSL, tente

openssl s_client -connect {HOSTNAME}:{PORT} -showcerts

substituindo {HOSTNAME} e {PORT} pelos seus valores.

    
por 17.08.2010 / 09:20
191

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
    
por 05.09.2013 / 15:47
114

Para ser honesto, eu nunca tentei isso antes (nunca precisei), no entanto, eu apenas tentei no Firefox e parece funcionar para salvar:

  1. Clique no ícone do certificado SSL no topo / cadeado na parte inferior.
  2. Clique em View Certificate
  3. Clique na guia Details
  4. Escolha qual certificado você quer da hierarquia [não circulado na foto]
  5. Clique em Export

    
por 18.01.2010 / 08:56
41

Exportando um certificado usando o navegador Google Chrome

  1. Conecte-se ao site usando SSL ( link )

2. Clique no símbolo de bloqueio e, em seguida, clique em Detalhes

  1. 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 .

  2. 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.

  3. Para exportar um certificado:

    1. Primeiro, clique no ícone do certificado na hierarquia de confiança.
    2. O certificado será exibido na parte principal do modal.
    3. Clique no ícone grande do certificado na parte principal do modal. Arraste o ícone para a sua área de trabalho. O Chrome copiará o certificado para sua área de trabalho.

    
por 26.12.2016 / 19:45
18

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
  • Digite QUIT e pressione a tecla Enter / Return.
  • O certificado será listado entre os marcadores "BEGIN CERTIFICATE" e "END CERTIFICATE".
  • 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 .

por 19.10.2012 / 00:10
9

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

    
por 25.01.2018 / 16:59
1

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}' "
    
por 23.05.2017 / 03:20