Como eu automatizo a exportação de um certificado codificado por DER para um site?

1

Gostaria de automatizar o seguinte processo com o comando openssl:

  • Abra o navegador, vá para o link
  • Inspecionar certificado SSL
  • Exporte-a localmente no formato DER

Eu tenho trabalhado ao longo das linhas do seguinte comando (aqui embrulhado em python):

local ("echo -n | openssl s_client -connect google.com:443 -certform DER | sed -ne '/ -BEGIN CERTIFICATE - /, / - END CERTIFICATE- / p' > /tmp/google.com .der ")

mas isso não me dá o que eu espero.

    
por Danny Armstrong 08.01.2013 / 04:03

2 respostas

1

Seu comando sed está capturando apenas a saída padrão de openssl s_client , mas o certificado vem com as outras informações de depuração no erro padrão. Você já tentou algo assim?

openssl s_client -connect google.com:443 </dev/null 2>&1 |
  sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' |
  openssl x509 -outform DER >/tmp/google.com.der
    
por 08.01.2013 / 16:06
1

Você provavelmente está vendo as linhas que openssl geram no stderr e são ignoradas por sed . Você pode simplesmente se livrar deles antes de passar a saída para sed :

% echo | openssl s_client -connect google.com:443 -certform DER 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
-----BEGIN CERTIFICATE-----
MIIF/DCCBWWgAwIBAgIKUCYyawAAAAB1rzANBgkqhkiG9w0BAQUFADBGMQswCQYD
...
v6UdT7iXlxVh2oslpIksSw2bf0H7PUQQjFCMLVbiEMAQbXal4+SsyYB+GsPVvlR+
-----END CERTIFICATE-----
    
por 09.01.2013 / 02:26