Générateur d’empreinte de certificat
Générer les empreintes SHA-256 et SHA-1 d’un certificat
Certificate (PEM Format)
About Fingerprints
Certificate fingerprints are cryptographic hashes used to uniquely identify certificates.
SHA-256 is recommended for modern applications.
Fingerprints
Paste a PEM certificate to generate fingerprints
Le Certificate Fingerprint Generator calcule les empreintes cryptographiques SHA-256, SHA-1 et MD5 de certificats X.509, produisant les identifiants uniques utilisés pour le certificate pinning, la vérification hors bande et l'audit de sécurité -- le tout calculé localement dans votre navigateur. Collez un certificat PEM et obtenez les empreintes en hexadécimal séparé par des deux-points, hexadécimal brut et base64.
Comprendre les empreintes de certificat
Une empreinte de certificat n'est pas un champ stocké à l'intérieur du certificat lui-même. C'est un hash cryptographique calculé sur l'ensemble des octets DER du certificat. Considérez-la comme un résumé compact de tout le certificat : modifiez un seul bit n'importe où dans le certificat -- un numéro de série différent, une date de validité différente, un émetteur différent -- et vous obtenez une empreinte complètement différente. Cette propriété rend les empreintes inestimables pour identifier et comparer des certificats sans avoir besoin de vérifier chaque champ individuellement.
L'utilisation la plus courante des empreintes est le certificate pinning. Lorsque vous développez une application mobile ou un client API qui se connecte à un serveur spécifique, vous pouvez intégrer l'empreinte SHA-256 attendue du certificat dans votre code. Lors du handshake TLS, votre application calcule l'empreinte du certificat du serveur et la compare à la valeur intégrée. Si elles ne correspondent pas, la connexion est rejetée -- même si le certificat est techniquement valide et signé par une CA de confiance. Cela protège contre les attaques man-in-the-middle où un attaquant présente un certificat frauduleux mais signé par une CA.
Les empreintes sont également essentielles pour la vérification hors bande. Si quelqu'un vous envoie un certificat par e-mail et que vous souhaitez confirmer qu'il n'a pas été altéré, vous pouvez l'appeler par téléphone et lire l'empreinte SHA-256. Si l'empreinte correspond à celle calculée de leur côté, vous savez que vous avez le même certificat. Ce processus est courant lors de l'échange de certificats pour des configurations TLS mutuel entre organisations.
Comment générer l'empreinte d'un certificat
- Collez votre certificat encodé en PEM (commençant par
-----BEGIN CERTIFICATE-----) - L'outil calcule les empreintes avec les algorithmes SHA-256, SHA-1 et MD5
- Copiez l'empreinte dans le format de votre choix (hexadécimal séparé par des deux-points, hexadécimal brut ou base64)
- Utilisez l'empreinte pour la configuration du pinning, la documentation ou la vérification
Formats de sortie des empreintes de certificat
Le générateur produit les empreintes dans plusieurs représentations adaptées à différents usages :
| Format | Exemple | Utilisé par |
|---|---|---|
| Hexadécimal séparé par des deux-points | A1:B2:C3:D4:E5:F6:78:9A:... | OpenSSL, vérification manuelle |
| Hexadécimal continu | A1B2C3D4E5F6789A... | Comparaison programmatique |
| Base64 | obLD1OX2mno=... | HPKP, pinning Android, iOS |
Comparaison des algorithmes
| Algorithme | Longueur du hash | Statut |
|---|---|---|
| SHA-256 | 64 caractères hexadécimaux (256 bits) | Standard recommandé |
| SHA-1 | 40 caractères hexadécimaux (160 bits) | Ancien, encore présent dans les outils plus anciens |
| MD5 | 32 caractères hexadécimaux (128 bits) | Obsolète, à ne pas utiliser pour la sécurité |
Exemple de génération d'empreinte
Pour un certificat avec CN=www.example.com :
SHA-256 Fingerprint:
Hex: B4:5A:E2:C3:7F:D1:92:4B:88:E6:A0:3C:55:71:F8:09:
2D:A4:C6:B7:E8:1F:3A:50:96:D2:44:7B:CC:8E:15:61
Base64: tFriw3/RkksI5qA8VXH4CS2kxrfoHzpQltJEe8yOFWE=
SHA-1 Fingerprint:
Hex: 9A:C2:D5:F7:11:3B:8E:44:6D:A9:01:C3:77:52:BB:DE:FF:08:91:23
MD5 Fingerprint:
Hex: 4D:2B:9A:C1:E5:F3:78:06:AA:11:DD:55:B2:C4:E6:F8
Quand utiliser cet outil
- Implémentation du certificate pinning -- extraire les empreintes SHA-256 pour le pinning de certificats dans les applications mobiles (Android
network-security-config.xmlou iOSInfo.plist) - Vérification hors bande -- comparer les empreintes via un canal séparé pour confirmer que vous disposez du bon certificat
- Audits de sécurité -- documenter les empreintes de certificats dans les politiques de sécurité et les rapports de conformité
- Comparaison entre environnements -- vérifier que les certificats déployés sur les environnements de staging, production et CDN sont identiques en comparant leurs empreintes
- Configuration de proxy d'inspection TLS -- configurer les empreintes de certificats de confiance pour les allowlists de proxy d'interception
- Détection de changements -- comparer les empreintes avant et après des opérations sur les certificats pour confirmer si un certificat a effectivement été remplacé
Fonctionnement des empreintes de certificat
Une empreinte de certificat est un hash cryptographique de l'ensemble du certificat encodé en DER. Ce n'est pas un champ à l'intérieur du certificat -- elle est calculée sur les octets bruts du certificat. Cela signifie que toute modification du certificat, aussi minime soit-elle, produit une empreinte complètement différente.
L'empreinte identifie de manière unique un certificat spécifique. Deux certificats avec des périodes de validité, des numéros de série ou des émetteurs différents auront des empreintes différentes, même s'ils partagent la même clé publique et le même sujet. Cette distinction est importante : le certificate pinning associe un certificat spécifique, tandis que le public key pinning associe la clé indépendamment du certificat qui la contient.
Pinning avec SHA-256
Le certificate pinning en production doit toujours utiliser SHA-256. Le processus d'implémentation typique :
- Extraire l'empreinte SHA-256 du certificat feuille de votre serveur
- Intégrer l'empreinte dans le code ou la configuration de votre application
- Lors du handshake TLS, calculer l'empreinte du certificat reçu
- Comparer avec l'empreinte stockée -- rejeter si elles ne correspondent pas
Calcul des empreintes avec OpenSSL
Vous pouvez vérifier la sortie de cet outil avec OpenSSL :
# Empreinte SHA-256
openssl x509 -in cert.pem -noout -fingerprint -sha256
# Empreinte SHA-1
openssl x509 -in cert.pem -noout -fingerprint -sha1
# Empreinte MD5
openssl x509 -in cert.pem -noout -fingerprint -md5
Bonnes pratiques pour les empreintes
La décision la plus importante dans le certificate pinning est de choisir entre l'empreinte du certificat et le hash de la clé publique. Les empreintes de certificat sont plus simples à implémenter -- vous hachez tout le certificat et comparez -- mais elles changent à chaque renouvellement car un certificat renouvelé possède des dates de validité, un numéro de série et une signature différents, produisant une empreinte différente. Si vous épinglez une empreinte de certificat sans plan de rotation, votre application cessera de se connecter dès que le certificat sera renouvelé. Épinglez toujours au moins deux empreintes : le certificat actuel et le prochain que vous prévoyez de déployer.
Le pinning de clé publique, en revanche, survit au renouvellement tant que vous réutilisez la même paire de clés. De nombreuses équipes préfèrent cette approche car elle découple le pinning du cycle de renouvellement. Cependant, si votre politique de sécurité exige une rotation des clés à chaque renouvellement, le pinning de clé publique n'offre aucun avantage et vous revenez à la gestion des mises à jour de pins. Dans les deux cas, vous avez besoin d'une stratégie pour faire tourner les pins avant que le certificat ou la clé actuel ne soit retiré.
Lorsque vous documentez des certificats pour la conformité ou les opérations, incluez l'empreinte SHA-256 aux côtés du sujet, de l'émetteur et de la date d'expiration. Les empreintes fournissent un identifiant non ambigu bien plus fiable que la comparaison des noms de sujet, qui peuvent être identiques sur plusieurs certificats. Si vous devez suivre un certificat spécifique à travers des load balancers, des noeuds CDN et des systèmes de monitoring, l'empreinte est la référence canonique.
Questions fréquentes
Quelle est la différence entre une empreinte de certificat et un hash de clé publique ? Une empreinte de certificat effectue le hash de l'intégralité du certificat (incluant le sujet, l'émetteur, la validité et la clé publique). Un hash de clé publique ne couvre que la partie SubjectPublicKeyInfo. Les empreintes de certificat changent lors du renouvellement, même si vous réutilisez la même clé. Les hash de clé publique restent stables d'un renouvellement à l'autre avec la même paire de clés, c'est pourquoi certaines implémentations de pinning les préfèrent.
Quel algorithme d'empreinte faut-il utiliser ? Utilisez SHA-256 pour toute nouvelle implémentation. SHA-1 présente des attaques par collision connues et n'est nécessaire que pour la compatibilité avec les systèmes anciens ne prenant pas en charge SHA-256. MD5 est cryptographiquement cassé et ne doit jamais être utilisé pour la vérification de sécurité.
Comment calculer une empreinte avec OpenSSL pour comparaison ?
Exécutez openssl x509 -in cert.pem -noout -fingerprint -sha256 pour produire l'empreinte SHA-256 au format hexadécimal séparé par des deux-points. Comparez cette sortie caractère par caractère avec le résultat de cet outil pour vérifier la cohérence.
Deux certificats différents peuvent-ils avoir la même empreinte ? En pratique, non. SHA-256 produit un hash de 256 bits, et trouver deux entrées différentes produisant le même hash (une collision) est infaisable avec la technologie actuelle. Des collisions SHA-1 ont été démontrées en recherche, ce qui est l'une des raisons pour lesquelles SHA-256 est le standard recommandé.
L'empreinte d'un certificat change-t-elle quand le format passe de DER à PEM ? Non. L'empreinte est toujours calculée sur les octets encodés en DER, quel que soit le mode de stockage ou de transmission du certificat. La conversion entre DER et PEM ne modifie pas les données DER sous-jacentes, donc l'empreinte reste identique.
Outils associés
- X.509 Certificate Viewer - Voir tous les détails du certificat, y compris le sujet, l'émetteur et les extensions
- Public Key Extractor - Extraire la clé publique pour le pinning basé sur la clé plutôt que sur le certificat
- Certificate Expiry Checker - Vérifier les dates de validité et les jours restants avant expiration
- SAN Extractor - Extraire tous les Subject Alternative Names d'un certificat
- Convert DER to PEM - Convertir les certificats binaires DER au format PEM avant le calcul d'empreinte