Eu quero baixar o certificado SSL de, digamos https://www.google.com , usando wget ou qualquer outro comando. Alguma linha de comando unix? wget ou openssl?
Eu quero baixar o certificado SSL de, digamos https://www.google.com , usando wget ou qualquer outro comando. Alguma linha de comando unix? wget ou openssl?
Para baixar o certificado, você precisa usar o cliente embutido no openssl assim:
Isso salvará o certificado em
/tmp/$SERVERNAME.cert
.O
-servername
é usado para selecionar o certificado correto quando são apresentados múltiplos, no caso do SNI.Você pode usar
-showcerts
se quiser baixar todos os certificados da cadeia. Mas se você quiser apenas baixar o certificado do servidor, não há necessidade de especificar-showcerts
. Ox509
no final removerá os certificados intermediários, você precisará usarsed -n '/-----BEGIN/,/-----END/p'
em vez do x509 no final.echo -n
dá uma resposta ao servidor, para que a conexão seja liberadaopenssl x509
remove informações sobre a cadeia de certificados e detalhes de conexão. Este é o formato preferencial para importar o certificado para outros keystores.Eu encontrei a resposta. Openssl fornece isso.
A ferramenta cliente GNUTLS
gnutls-cli
, , também pode facilitar isso:O programa foi projetado para fornecer um cliente interativo ao site, portanto, você precisa fornecer uma entrada vazia (neste exemplo, de
/dev/null
) para encerrar a sessão interativa.este modo de openssl espera stdin, então nós o fornecemos via
true |
, isso se conecta ao servidor especificado no parâmetro -connect.2>/dev/null
silencia erros (opcional), podemos passar toda a saída para o analisador x509, especificando/dev/stdin
o uso do shell pipe como arquivo de entrada. E isso produzirá apenas a-----BEGIN CERTIFICATE-----
parte-----END CERTIFICATE-----
das_client
saída. Você pode redirecionar isso para um arquivo adicionando> google.com.pem
ao final do comando.Da melhor forma que posso dizer, isso não verifica a cadeia de certificados, apenas informa qual identidade SSL o servidor final fornece.
com base na resposta @bignose, aqui está uma versão independente que se encaixa bem, por exemplo, em uma receita de chef:
Sintaxe alternativa usando Ex e substituição de processo: