Como verifico se meus certificados SSL foram revogados

23

A recente descoberta da vulnerabilidade heartbleed levou as autoridades de certificação a reemitir certificados.

Eu tenho dois certificados que foram gerados antes da descoberta da vulnerabilidade heartbleed. Depois que o emissor do SSL me disse para regenerar o certificado, atualizei meus servidores / domínios com os novos certificados.

Se meu entendimento estiver correto, os certificados antigos deveriam ter sido revogados pela CA e devidos à CRL (Lista de revogação de certificados) ou ao banco de dados OCSP (Protocolo de status de certificado on-line), caso contrário, é tecnicamente possível para alguém executar uma " man in the middle attack ", regenerando os certificados das informações coletadas nos certificados comprometidos.

Existe uma maneira de verificar se meus certificados antigos chegaram à CRL e OCSP. Se não tiverem, existe uma maneira de incluí-los?

ATUALIZAÇÃO: A situação é que eu já substituí meus certificados, tudo o que tenho são os arquivos .crt dos certificados antigos, portanto, usar o URL para verificar não é realmente possível.

sridhar pandurangiah
fonte
Você pode verificar usando certutil eu acredito. Leia aqui
MichelZ
1
Eu uso o Ubuntu como meu desktop e Centos no meu servidor
pandurangiah sridhar
Então, eu encorajá-lo a marcar a sua pergunta como tal
MichelZ
Eu recomendo a leitura do presente para * nix
MichelZ
@MichelZ - eu ter marcado a questão com o Ubuntu
pandurangiah sridhar

Respostas:

10

Obtenha o URL do ocsp do seu certificado:

$ openssl x509 -noout -ocsp_uri -in /etc/letsencrypt/archive/31337.it/cert1.pem
http://ocsp.int-x1.letsencrypt.org/
$

Envie uma solicitação ao servidor ocsp para verificar se o certificado foi revogado ou não:

$ openssl ocsp -issuer /etc/letsencrypt/archive/31337.it/chain4.pem -cert /etc/letsencrypt/archive/31337.it/cert4.pem -text -url http://ocsp.int-x1.letsencrypt.org/ -header "HOST" "ocsp.int-x1.letsencrypt.org"
...
        This Update: Oct 29 10:00:00 2015 GMT
        Next Update: Nov  5 10:00:00 2015 GMT
$

este é um bom certificado.

Este é um certificado revogado:

$  openssl ocsp -issuer /etc/letsencrypt/archive/31337.it/chain3.pem -cert /etc/letsencrypt/archive/31337.it/cert3.pem -text -url http://ocsp.int-x1.letsencrypt.org/ -header "HOST" "ocsp.int-x1.letsencrypt.org"
...
        This Update: Oct 29 12:00:00 2015 GMT
        Next Update: Nov  5 12:00:00 2015 GMT
        Revocation Time: Oct 29 12:33:57 2015 GMT
$
Simon
fonte
Isso funcionou para mim (obrigado), mas achei que eu também mencionaria que, além do tempo de revogação, minha saída também exibia um motivo de revogação, o que foi útil quando contatamos o emissor tentando descobrir com o que diabos estava acontecendo. o certificado.
Sdek 12/05/19
10

Você pode usar o certutil no Windows:

Se você possui um certificado e deseja verificar sua validade, execute o seguinte comando:

certutil -f –urlfetch -verify [FilenameOfCertificate]

Por exemplo, use

certutil -f –urlfetch -verify mycertificatefile.cer

Fonte / Mais informações: TechNet

Além disso, verifique com sua CA. Só porque você redigita o certificado / obtém um novo, não significa que eles o revogam automaticamente!

MichelZ
fonte
1
Para instalar certutilno servidor Ubuntu usar o comando sudo apt-get install libnss3-tools. Isso não é óbvio, pois a busca no cache apt-get não retorna resultados para a string certutil. Eu sei que o servidor do OP é o CentOS, mas é possível que outros administradores do Ubuntu Server também achem essa pergunta útil.
dotancohen
Minha resposta foi puramente baseada no Windows . Não conheço nenhuma implementação * nix disso. Veja aqui para uma solução de * nix possível
MichelZ
2
@dotancohen Embora esse programa também seja chamado certutil, não é o mesmo que certutil.exeno Windows e não é usado da mesma maneira.
Dan Getz
1

Você pode usar este serviço SSLLabs para testar certificados SSL, mas é necessário que eles estejam acessíveis na Web. Além disso, você pode descobrir mais algumas informações, porque este serviço fornece algumas auditorias.

mack
fonte
Isso requer que o servidor seja executado com o certificado antigo. Mas, depois de regenerar meus certificados, tudo o que tenho é o arquivo .crt do certificado antigo.
pandurangiah sridhar
1

Se você revogou os certificados por meio da CA que os gerou, eles teriam chegado a OCSP e CRLs.

Se você quiser ter certeza de que é esse o caso, extraia o URL do ocsp do certificado e construa uma solicitação de ocsp para esse URL, incluindo o número de série do certificado, o certificado do emissor ca e recupere a resposta do ocsp. analise-o para verificar e confirmar se é realmente revogado.

Mais detalhes nesta página útil: http://backreference.org/2010/05/09/ocsp-verification-with-openssl/

Nota: isso requer o uso da biblioteca openssl.

Edit1: Vejo que você adicionou informações sobre OCSP e CRL explicitamente após esta resposta.

Khanna111
fonte