Estou tentando criar um script bash que verificará o status SSL do cliente do meu site e retornará o erro. Mas para cada IP, wget https://$ip:$port
me dá o seguinte erro:
ERROR: The certificate of 1.2.3.4 is not trusted
ERROR: The certificate of 1.2.3.4 hasn't got a know issuer
Quando tento com o Firefox tenho o certificado para cada IP. Então tentei despejar o Firefox CA em um repositório como este:
wget http://$ip:$port --ca-directory=(directory of CA from Firefox)
Mas isso não muda nada.
Acho que wget
não encontra o certificado SSL e não sei como obtê-lo.
Como posso obter as informações do certificado?
Responder1
Normalmente, os certificados SSL são emitidos para nomes de host www.example.com
e não para endereços IP.
Portanto, ao usar o endereço IP, você obtém uma incompatibilidade entre o URL que está acessando e o nome do host para o qual o certificado foi emitido.
Segundo, o diretório CA do firefox pode não ser adequado, pois de acordo com a página man wget requer:
--ca-diretório=diretórioEspecifica o diretório que contém certificados de CA no formato PEM. Cada arquivo contém um certificado CA e o nome do arquivo é baseado em um valor hash derivado do certificado. ...
Acho que o wget usa as bibliotecas openssl, possivelmente tornando-o um utilitário mais detalhado para verificar o status do certificado, por exemplo, em uma consulta para determinar a data de expiração de um certificado SSL:
echo "GET /" | openssl s_client -connect servername:port | openssl x509 -noout -dates