Verifique os certificados do site do Linux CLI sobre SSH

1

Suponha que um site retorne um certificado inválido, para o qual o Firefox e o Chrome fornecem ao usuário avisos assustadores. Eu gostaria de garantir que a minha conexão local não está sendo man-in-the-middled (que é uma possibilidade real, neste caso), então eu gostaria de verificar o certificado de um servidor remoto em outra nação via SSH. Como isso pode ser feito?

Eu tentei simplesmente abrir o site em questão com elinks , mas elinks aparentemente não lança a mesma mensagem assustadora para certificados inválidos.

    
por dotancohen 23.01.2013 / 11:51

1 resposta

2

Primeiro, obtenha o certificado usando gnutls-cli ou openssl s_client .

gnutls-cli "$host" -p "$port" --insecure --print-cert < /dev/null > cert

openssl s_client -connect "$host:$port" -no_ign_eof < /dev/null > cert

Em seguida, despeje todas as informações do certificado (geralmente lista pelo menos dois certificados, o servidor e o CA):

certtool -i < cert

while openssl x509 -text; do true; done < cert

Ou apenas a impressão digital SHA1 do certificado mais importante:

certtool -i < cert | grep -A1 fingerprint

openssl x509 -noout -fingerprint -sha1 < cert
    
por 23.01.2013 / 13:36