Comment vérifier un certificat et sa chaîne

Saisissez un nom d’hôte public puis cliquez sur Inspecter le certificat. Le serveur VoriTools résout le nom, se connecte au port 443 et lit le certificat présenté : émetteur, sujet, noms, période de validité, empreinte SHA-256, protocole négocié, suite de chiffrement et durée de la négociation.

Viennent ensuite deux familles de résultats : les contrôles de nom et de dates qu’un navigateur effectue aussi, puis la question de savoir si les certificats envoyés forment un chemin jusqu’à une racine du magasin de CA de ce serveur. Rien n’est conservé et le service est limité à 30 vérifications par minute.

  1. Saisissez le nom d’hôte seul : exemple.fr. Le schéma, le chemin, une adresse IP et un nom à un seul libellé comme localhost sont refusés ; un nom international est converti en punycode.
  2. Cliquez sur Inspecter le certificat ; le serveur se connecte au port 443 depuis l’internet public.
  3. Lisez les trois indicateurs : protocole négocié, jours restants et durée de la négociation.
  4. Lisez le panneau du certificat : sujet et émetteur, nom commun, tous les noms alternatifs, la période de validité dans votre fuseau horaire, le numéro de série, l’empreinte SHA-256, la suite de chiffrement et l’adresse qui a répondu.
  5. Lisez les résultats : d’abord le nom et les dates, puis la chaîne — de confiance, incomplète, auto-signée, racine non fiable ou rejetée.

Ce que le rapport couvre, et ce qu’il ne peut pas affirmer

Correspondance du nom et dates

Le contrôle du nom suit la règle des navigateurs : *.exemple.fr couvre exactement un libellé supplémentaire (www.exemple.fr), pas exemple.fr lui-même, ni a.b.exemple.fr. Lorsqu’un certificat liste des noms alternatifs, seule cette liste est comparée ; le nom commun sert aux certificats qui n’en ont pas. Tous les noms de la liste sont affichés, quel que soit leur nombre.

Les dates proviennent du certificat. Les jours restants sont comptés en jours entiers et deviennent négatifs une fois le certificat expiré ; un certificat encore valide qui expire dans moins de 30 jours est signalé comme avertissement, pas comme erreur.

Le résultat de la chaîne

Les certificats du point de terminaison sont confrontés au magasin de CA qu’utilise ce serveur : un chemin doit pouvoir être construit du certificat présenté jusqu’à une racine de confiance. Les issues négatives sont distinguées : le serveur n’a pas envoyé d’intermédiaire reliant le certificat à une racine (chaîne incomplète), le certificat est son propre émetteur (auto-signé), la chaîne se termine sur une racine absente de ce magasin, ou un chemin a été construit puis rejeté.

Une chaîne incomplète est signalée comme avertissement et non comme échec, car les navigateurs gardent les intermédiaires en cache et certains récupèrent le certificat manquant auprès de l’émetteur. Ce contrôle ne fait ni l’un ni l’autre. Il ne lit pas non plus le magasin de confiance du navigateur ou du système d’exploitation du visiteur, et ne consulte ni OCSP, ni CRL, ni la transparence des certificats : un résultat de confiance ici n’est donc pas une promesse pour le navigateur de la machine du visiteur.

Les chiffres à relire

Depuis ce serveur, seuls des hôtes publics sur le port 443 sont joignables, les adresses privées et réservées sont bloquées, et le nom est résolu ici — un point de terminaison réparti géographiquement peut présenter à ce serveur un certificat différent de celui servi ailleurs.

Le protocole affiché est celui négocié par ce serveur, et sa pile TLS s’arrête à TLS 1.2 : un site qui sert du TLS 1.3 aux navigateurs actuels peut apparaître ici en TLS 1.2. Comparez avec openssl s_client sur une machine à jour avant de conclure. La durée de la négociation est une mesure unique depuis un seul emplacement, pas une référence.

La longueur de la chaîne est le nombre de certificats envoyés, certificat présenté compris — sha256.badssl.com en envoie trois : le certificat, l’intermédiaire et une racine croisée.

Outils récents :