Comment vérifier si mes certificats SSL ont été révoqués

23

La récente découverte de la vulnérabilité Heartbleed a incité les autorités de certification à réémettre les certificats.

J'ai deux certificats qui ont été générés avant la découverte de la vulnérabilité Heartbleed. Après que l'émetteur SSL m'a dit de régénérer le certificat, j'ai mis à jour mes deux serveurs / domaines avec les nouveaux certificats.

Si ma compréhension est correcte, les anciens certificats auraient dû être révoqués par l'autorité de certification et auraient dû se rendre dans la liste de révocation de certificats (CRL) ou la base de données OCSP (Online Certificate Status Protocol), sinon il est techniquement possible pour quelqu'un d'effectuer une " man in the middle attack "en régénérant les certificats à partir d'informations récupérées à partir de certificats compromis.

Existe-t-il un moyen de vérifier si mes anciens certificats ont atteint CRL et OCSP? S'ils ne l'ont pas, existe-t-il un moyen de les inclure?

MISE À JOUR: La situation est que j'ai déjà remplacé mes certificats tout ce que j'ai, c'est les fichiers .crt des anciens certificats, donc utiliser l'URL pour vérifier n'est pas vraiment possible.

sridhar pandurangiah
la source
Vous pouvez vérifier en utilisant certutil je crois. Lisez ici
MichelZ
1
J'utilise Ubuntu comme bureau et Centos sur mon serveur
sridhar pandurangiah
Ensuite, je vous encourage à marquer votre question comme telle
MichelZ
Je recommande une lecture de ceci pour * nix
MichelZ
@MichelZ - j'ai marqué la question avec Ubuntu
sridhar pandurangiah

Réponses:

10

Obtenez l'url ocsp de votre certificat:

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

Envoyez une demande au serveur ocsp pour vérifier si le certificat est révoqué ou non:

$ 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
$

c'est un bon cert.

Il s'agit d'un certificat révoqué:

$  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
la source
Cela a fonctionné pour moi (merci), mais j'ai pensé que je mentionnerais également qu'en plus du temps de révocation, mes sorties affichaient également une raison de révocation, ce qui était utile lorsque nous avons contacté l'émetteur pour essayer de comprendre ce qui se passait. le cert.
sdek
10

Vous pouvez utiliser certutil sous Windows:

Si vous avez un certificat et souhaitez vérifier sa validité, exécutez la commande suivante:

certutil -f –urlfetch -verify [FilenameOfCertificate]

Par exemple, utilisez

certutil -f –urlfetch -verify mycertificatefile.cer

Source / Plus d'informations: TechNet

De plus, assurez-vous de vérifier auprès de votre CA. Ce n'est pas parce que vous ressaisissez le certificat / en obtenir un nouveau qu'il ne le révoque pas automatiquement!

MichelZ
la source
1
Pour installer certutilsur le serveur Ubuntu, utilisez la commande sudo apt-get install libnss3-tools. Ce n'est pas évident car la recherche dans le cache apt-get ne renvoie aucun résultat pour la chaîne certutil. Je sais que le serveur de l'OP est CentOS, mais il est possible que d'autres administrateurs d'Ubuntu Server trouvent également cette question utile.
dotancohen
Ma réponse était purement basée sur Windows . Je ne connais aucune implémentation * nix de cela. Voir ici pour une solution * nix possible
MichelZ
2
@dotancohen Bien que ce programme soit également appelé certutil, ce n'est pas le même programme que certutil.exesous Windows et n'est pas utilisé de la même manière.
Dan Getz
1

Vous pouvez utiliser ce service SSLLabs pour tester les certificats SSL, mais vous en avez besoin pour être accessibles à partir du Web. De plus, vous pouvez trouver plus d'informations, car ce service fournit un audit.

mack
la source
Cela nécessite que le serveur s'exécute avec l'ancien certificat. Mais après avoir régénéré mes certificats, je n'ai que le fichier .crt de l'ancien certificat.
sridhar pandurangiah
1

Si vous avez révoqué les certificats par le biais de l'autorité de certification qui les a générés, ils l'auraient fait pour OCSP et CRL.

Si vous souhaitez vous assurer que c'est le cas, veuillez extraire l'URL OCSP du certificat, puis créer une demande OCSP vers cette URL, y compris le numéro de série du certificat, le certificat de l'émetteur ca et récupérer la réponse OCSP, puis on pourrait analysez-le pour vérifier et confirmer qu'il est bien révoqué.

Plus de détails sur cette page utile: http://backreference.org/2010/05/09/ocsp-verification-with-openssl/

Remarque: cela nécessite l'utilisation de la bibliothèque openssl.

Edit1: Je vois que vous avez ajouté des informations sur OCSP et CRL explicitement après cette réponse.

Khanna111
la source