Décodeur de certificat SSL — lire les fichiers PEM, CRT et CSR
Collez un certificat PEM, une chaîne ou une CSR, ou importez un fichier .crt, pour voir les SAN, l’expiration, l’émetteur, le type de clé et les empreintes. Décodé dans votre navigateur.
Seuls les certificats et les CSR sont nécessaires. Ne collez jamais une clé privée sur un site web ; si vous le faites ici, elle est ignorée.
Fonctionne entièrement dans votre navigateur. Les certificats sont décodés localement : rien n’est envoyé et aucune requête OCSP ni CT n’est effectuée. Parcourir tous les outils gratuits.
Un problème, ou quelque chose à améliorer ? Nous lisons chaque message et corrigeons vite.
Ce décodeur de certificat SSL gratuit lit un certificat X.509 et en affiche le contenu : les noms de domaine couverts (Subject Alternative Names), l’émetteur, la date d’expiration et le nombre de jours restants, le type et la taille de la clé, les extensions et les empreintes SHA-256 et SHA-1. Collez du texte PEM, une chaîne complète issue d’un fullchain.pem ou une demande de signature de certificat (CSR) avant de l’envoyer à une AC. Vous pouvez aussi importer des fichiers .crt, .cer, .der et .pem.
Le décodage se fait dans votre navigateur ; rien n’est envoyé et aucune requête réseau n’est effectuée. Cela signifie aussi que l’outil indique ce que dit le certificat, pas s’il est digne de confiance : il ne vérifie pas les signatures, ne contrôle pas la révocation (OCSP ou CRL) et ne consulte pas les journaux Certificate Transparency. Pour une chaîne, il vérifie que le nom de l’émetteur de chaque certificat correspond au sujet du certificat suivant, ce qui détecte l’erreur d’ordre la plus courante. Il lit les certificats RSA, ECDSA et Ed25519, contrairement à de nombreux décodeurs JavaScript qui ne gèrent que le RSA.
Mode d’emploi
- Collez un certificat commençant par -----BEGIN CERTIFICATE-----, plusieurs certificats, ou une CSR commençant par -----BEGIN CERTIFICATE REQUEST-----. Ou cliquez sur Importer et choisissez un fichier .crt, .cer, .der ou .pem.
- Vérifiez la ligne d’état colorée de chaque certificat : valide avec les jours restants, expiration proche (moins de 30 jours), expiré ou pas encore valide.
- Vérifiez que les Subject Alternative Names listent bien chaque nom d’hôte que le certificat doit couvrir. Les navigateurs ignorent le Common Name.
- Pour une chaîne, lisez l’encadré Ordre de la chaîne : le certificat du serveur doit venir en premier, suivi de chaque émetteur à tour de rôle.
- Copiez une empreinte ou le PEM d’un certificat avec les boutons de sa fiche.
Questions fréquentes
Comment vérifier la date d’expiration d’un certificat SSL ?
Collez le certificat ici et lisez la ligne Valide jusqu’au et l’état au-dessus, qui indique les jours restants. Pour obtenir le certificat servi par un site en ligne, lancez openssl s_client -connect example.com:443 -servername example.com -showcerts, ou dans le navigateur, cliquez sur le cadenas (ou l’icône des paramètres du site), ouvrez la visionneuse de certificat et exportez-le. Vous pouvez aussi vérifier en ligne de commande avec openssl x509 -in cert.pem -noout -enddate.
Quelle est la différence entre PEM, DER, CRT et CER ?
PEM et DER sont des encodages ; CRT et CER ne sont que des extensions de fichier. DER est la forme binaire du certificat. PEM contient les mêmes octets en Base64 entre des lignes -----BEGIN CERTIFICATE----- et -----END CERTIFICATE-----, et un seul fichier PEM peut contenir plusieurs certificats. Un fichier .crt ou .cer peut contenir l’un ou l’autre encodage (sous Windows, .cer désigne généralement du DER). Ce décodeur accepte les deux.
Qu’est-ce qu’un Subject Alternative Name (SAN) ?
L’extension SAN liste chaque nom d’hôte et adresse IP pour lesquels le certificat est valide, comme example.com, www.example.com et *.example.com. Les navigateurs ne vérifient que cette liste ; le Common Name du sujet est ignoré par Chrome depuis la version 58 (2017). Un certificat sans SAN correspondant échoue avec une erreur de nom non concordant, même si le Common Name est correct.
Qu’est-ce que l’empreinte d’un certificat ?
Un hash du certificat complet sous sa forme DER, affiché en hexadécimal. Elle identifie un certificat précis : si un seul octet diffère, l’empreinte change. Les empreintes SHA-256 sont la norme actuelle ; les empreintes SHA-1 sont encore affichées par certains outils et anciens systèmes. Les empreintes ne sont pas secrètes. L’épingle SPKI affichée ici est différente : elle ne hache que la clé publique, et reste donc identique quand un certificat est renouvelé avec la même clé.
Quelle peut être la durée de validité d’un certificat SSL ?
Pour les certificats TLS reconnus publiquement, la limite du CA/Browser Forum est de 398 jours depuis septembre 2020. Le scrutin SC-081 l’abaisse par étapes : 200 jours pour les certificats émis à partir du 15 mars 2026, 100 jours à partir du 15 mars 2027 et 47 jours à partir du 15 mars 2029. Les certificats d’une AC privée ou interne ne sont pas soumis à ces limites. Cet outil vous avertit quand un certificat final dépasse la limite applicable à sa date d’émission.
Puis-je coller mon certificat ici sans risque ?
Oui. Un certificat est public par nature : chaque visiteur de votre site le reçoit. Le décodage se fait en outre localement dans votre navigateur. La clé privée, c’est une autre affaire : ne collez jamais une clé privée dans un site web. Si votre texte collé en contient une, cet outil l’ignore et vous le signale.
Lire un certificat : la signification de chaque champ
• Sujet et émetteur : noms distinctifs. CN est le nom commun, O l’organisation, C le pays. Sur un certificat auto-signé ou racine, ils sont identiques.
• Validité : Not Before et Not After, en UTC. Les clients rejettent le certificat en dehors de cette période : une horloge erronée sur un appareil peut donc faire échouer un certificat valide.
• Numéro de série : unique pour chaque AC ; c’est lui que référence une liste de révocation.
• Clé publique : les clés RSA font 2048 bits ou plus ; les clés ECDSA utilisent une courbe nommée, généralement P-256 ou P-384, et sont bien plus courtes pour une robustesse comparable. Ed25519 reste rarement utilisé pour le TLS public à ce jour.
• Utilisation de la clé et utilisation étendue de la clé (key usage, extended key usage) : ce que la clé est autorisée à faire. Un certificat de serveur TLS a besoin de TLS Web Server Authentication ; un certificat d’AC a besoin de Certificate Sign.
• Contraintes de base (basic constraints) : CA:TRUE marque un certificat capable d’en émettre d’autres ; une longueur de chemin limite le nombre d’intermédiaires pouvant le suivre.
• Authority Information Access : où récupérer le certificat de l’émetteur (CA Issuers) et où interroger la révocation (OCSP).
Corriger les problèmes de chaîne
La plupart des erreurs « certificat non approuvé » qui surviennent dans un navigateur mais pas dans un autre, ou dans curl, viennent de la chaîne envoyée par le serveur. Le serveur doit envoyer son propre certificat en premier, puis l’intermédiaire qui l’a émis, et ainsi de suite ; il n’a pas besoin d’envoyer la racine, que les clients possèdent déjà. Les navigateurs peuvent parfois récupérer eux-mêmes un intermédiaire manquant (grâce à l’URL AIA), mais curl, Java, Python et la plupart des applications mobiles en sont incapables : ils échouent donc.
Collez ici la chaîne complète du serveur (pour Let’s Encrypt, fullchain.pem ; pour les autres AC, votre certificat suivi du bundle de l’AC) et vérifiez que chaque ligne « est émis par » est verte. Si l’ordre est faux, réordonnez les blocs PEM dans la configuration de votre serveur. S’il manque un maillon, ajoutez le certificat intermédiaire fourni par votre AC.
Outils gratuits similaires
- Décodeur JWT — Décodez l’en-tête et la charge utile d’un JWT, lisez l’expiration en clair, vérifiez les signatures HS, RS, PS et ES ou signez un nouveau jeton. Rien ne quitte votre navigateur.
- Encodeur / décodeur Base64 — Encodez du texte ou des fichiers en Base64, transformez des images en data URI avec extraits CSS et <img>, et décodez du Base64 en fichier avec aperçu. Rien ne quitte votre navigateur.
- Générateur de mots de passe — Générez un mot de passe aléatoire fort, une phrase de passe facile à retenir ou un code PIN. Tout se passe dans votre navigateur, rien n’est envoyé ni stocké.
- curl en code — Collez une commande curl, y compris un « Copy as cURL » de Chrome, et obtenez la même requête en Python, JavaScript, Node, Go, PHP, Ruby, Java, C#, wget ou HTTPie.
- Validateur YAML — Validez du YAML avec la ligne et la colonne exactes de chaque erreur, et repérez les fautes que les parseurs acceptent sans rien dire : booléens yes/no, tabulations, clés en double.