Como posso verificar os certificados SSL na linha de comando?


Respostas:


61

Supondo que seus certificados estejam no formato PEM, você pode:

openssl verify cert.pem

Se o seu "ca-bundle" for um arquivo que contém certificados intermediários adicionais no formato PEM:

openssl verify -untrusted ca-bundle cert.pem

Se o seu openssl não estiver configurado para usar automaticamente um conjunto instalado de certificados raiz (por exemplo, in /etc/ssl/certs), você poderá usar -CApathou -CAfileespecificar a CA.


9
Atenção, o comando openssl confirm é mais permissivo do que você imagina! Por padrão, além de verificar o CAfile fornecido, ele também verifica se há CAs correspondentes no diretório certs do sistema, por exemplo, / etc / ssl / certs. Para evitar esse comportamento e verificar se você está verificando seu certificado CA específico fornecido pelo CAfile, também deve passar uma opção -CApath com um diretório inexistente, por exemplo: openssl verifica -verbose -CApath nosuchdir -CAfile cacert.pem server .crt
DSimon

2
Mais uma advertência: se você usar -CApath nosuchdir, a combinação de server.crt e cacert.pem deve incluir a CA raiz; se o openssl puder trabalhar apenas com uma CA intermediária com esses arquivos, ele reclamará.
precisa saber é o seguinte

Ele diz que não existe esse arquivo /certs/. isso causará um problema? porque estou empilhado em uma situação em que meu servidor funciona, o http curl funciona, mas https .. curl recebe erro. onde o site parou de funcionar.
Giorgi Gvimradze 28/10

18

Aqui está uma linha para verificar uma cadeia de certificados:

openssl verify -verbose -x509_strict -CAfile ca.pem -CApath nosuchdir cert_chain.pem

Isso não requer a instalação da CA em nenhum lugar.

Consulte https://stackoverflow.com/questions/20409534/how-does-an-ssl-certificate-chain-bundle-work para obter detalhes.


11
Aviso, a opção -CAfile é mais permissiva do que você imagina. Veja meu comentário sobre a resposta aceita para obter detalhes.
DSimon

11
@ DSimon, eu adicionei -CApath nosuchdirisso para responder. Obrigado.
Vadzim 21/01

Não tem problema, feliz em ajudar. :-) Uma ressalva que descobri depois de postar meu comentário anterior: se o arquivo especificado -CAfilefor apenas um certificado intermediário, o openssl reclamará. Esse é um comportamento correto, pois verifyrequer uma cadeia completa até a CA raiz, mas pode ser enganoso.
DSimon

2
Minha versão ( OpenSSL 1.1.1 11 Sep 2018) exige que o argumento -CApathseja um diretório existente.
Jake Cobb
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.