2010-01-18 07:43:44 +0000 2010-01-18 07:43:44 +0000
342
342

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

Eu preciso baixar um certificado SSL de um servidor remoto (não HTTPS, mas o aperto de mão SSL deve ser o mesmo do Google Chrome / IE / wget e curl todos dão erros de verificação de certificados) e adicionar o certificado como confiável na loja de certificados do Windows dos meus laptops, uma vez que eu não sou capaz de obter o meu pessoal de TI para me dar o certificado 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 isto, tenho o Windows 7 e uma pilha de Linuxes à mão, por isso qualquer ferramenta / linguagem de scripting está bem.

Respostas (8)

333
333
333
2010-08-17 07:20:51 +0000

Se tem acesso ao OpenSSL, experimente

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

substituindo {HOSTNAME} e {PORT} por quaisquer que sejam os seus valores.

264
264
264
2013-09-05 13:47:29 +0000

Um método rápido para obter o certificado puxado e descarregado seria executar o seguinte comando que canaliza a saída dos -showcerts para o comando x509 ssl que apenas retira tudo o que é estranho. 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
128
128
128
2010-01-18 07:56:49 +0000

Para ser honesto, nunca tinha tentado isto antes (nunca precisei), no entanto, apenas tentei no Firefox e parece funcionar para poupar:

  1. Clique no ícone do certificado SSL no topo / cadeado no fundo.
  2. Clique em View Certificate
  3. Clique no separador Details
  4. Escolha o certificado que pretende da hierarquia [não circulado na imagem]
  5. Clique em Export

52
52
52
2016-12-26 18:45:38 +0000

Exportar um certificado utilizando o navegador Chrome*

  1. Ligue-se ao site utilizando SSL https://whatever )

2. Clique no símbolo do cadeado e depois clique em Details

  1. Desde a versão 56 do Chrome, faça o seguinte: vá ao Menu Três Pontos -> More Tools -> Developer Tools, depois clique no separador Security. Isto dar-lhe-á um Security Overview com um View certificate button.

  2. Clique no botão Ver certificado.

  3. Para exportar um certificado:

20
20
20
2012-10-18 22:10:10 +0000

Esta é a resposta de gbroiles , mas gostaria de salientar que o projecto cURL tem uma página com mais alguns detalhes sobre a utilização do openssl para guardar o certificado SSL do servidor remoto:

  • openssl s\_client -connect {HOSTNAME}:{PORT} | tee logfile
  • Tipo QUIT e prima a tecla Enter / Return.
  • O certificado será listado entre os marcadores “BEGIN CERTIFICATE” e “END CERTIFICATE”.
  • Se quiser ver os dados no certificado, pode utilizar:
16
16
16
2018-01-25 15:59:26 +0000

automated

-servername foi necessário para eu obter o cert certo do anfitrião virtual no 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 para um certificado para desktop

openssl x509 -inform PEM -in host.name.com.pem -outform DER -out host.name.com.cer a última parte é para adicioná-lo aos seus certs, não certo no windows para o chaveiro mac que usei, deve ser semelhante…

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain host.name.com.cer

2
2
2
2017-05-23 01:20:39 +0000

Isto dará 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}' "
0
0
0
2019-05-03 13:19:15 +0000

Encontrou uma maneira muito mais fácil se no Windows. Experimentei o Microsoft Edge (pré-cromo) e clique no cadeado na barra de endereços -> View certificate Dialog pop up com um botão “Export to File”, que o guarda como um ficheiro .crt.

Não era muito o Edge que eu usaria, mas isto era canja.