Journaux de transparence des certificats (TC)

Last updated: June 15, 2026
Voir toute la documentation

La Transparence des Certificats (TC) est un système pour enregistrer et surveiller l'émission de certificats TLS. CT améliore considérablement la capacité de chacun à surveiller et à étudier l'émission de certificats, et ces capacités ont conduit à de nombreuses améliorations de l'écosystème CA et de la sécurité du Web. En conséquence, le CT devient rapidement une infrastructure critique.

Let's Encrypt soumet tous les certificats que nous délivrons aux journaux TC. Nous gérons également des journaux TC. Toutes les autorités de certification publiquement reconnues sont les bienvenues pour contribuer à nos journaux. De nombreux certificats racine d'autorité de certification ont déjà été inclus dans nos journaux CT. Si vous exploitez une autorité de certification et que votre émetteur n'est pas dans notre liste d'émetteurs acceptés, veuillez déposer un message ici.

Inscrivez-vous pour recevoir des notifications dans le catégorie des annonces CT de notre forum communautaire pour voir les annonces majeures concernant nos journaux CT.

Financement

Si votre organisation souhaite nous aider à poursuivre ce travail, nous vous invitons à envisager un parrainage ou un don.

Journaux TC

Des informations sur les différents états du cycle de vie d'un journal de CT peuvent être trouvées ici.

Sunlight

Let's Encrypt gère actuellement les journaux static-ct basés sur Sunlight.

Les informations incluant les roots acceptées, les clés publiques, les IDs de journaux et les intervales entre les fragments sont disponibles sur chaque page d'accueil de journal, les liens sont ci-dessous.

Sycamore et Willow sont nos journaux de production TC, acceptant les certificats des CAs de confiance.

Twig est un journal de test, acceptant les certificats des CAs de confiance ainsi que des CAs de test supplémentaires y compris l'environnement de test Let's Encrypt.

RFC 6962 Logs EOL

Let's Encrypt exécutait les journaux basés sur Trillian, implémentant l'API RFC 6962. Pour plus d'information, voir le projet de fin de vie de nos journaux de Transparence des Certificats RFC 6962.

Opérations de journalisation

Pour énumérer les racines incluses pour un journal CT particulier, vous pouvez exécuter la commande suivante dans le terminal de votre choix :

$ for i in $(curl -s https://oak.ct.letsencrypt.org/2020/ct/v1/get-roots | jq -r '.certificates[]'); do
    echo '------'; base64 -d <<< "${i}" | openssl x509 -inform der -noout -issuer -serial
done

La soumission des certificats à un journal CT est généralement gérée par les autorités de certification. Si vous souhaitez expérimenter avec ceci, commencez par récupérer un certificat arbitraire encodé en PEM à partir de notre site web préféré. Copiez et collez le bloc suivant dans votre terminal.

$ echo | \
openssl s_client \
    -connect "letsencrypt.org":443 \
    -servername "letsencrypt.org" \
    -verify_hostname "letsencrypt.org" 2>/dev/null | \
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > example.crt

Avant qu'un certificat ne puisse être soumis, il doit être encodé en JSON dans une structure spéciale. Vous pouvez utiliser le générateur JSON fourni par https://crt.sh/gen-add-chain pour effectuer cette opération. L'utilitaire crt.sh renverra un paquet JSON. Téléchargez le paquet sur votre ordinateur, renommez le fichier si nécessaire et lancez la commande suivante pour effectuer l'opération add-chain (RFC 6962 section 4.1) pour soumettre le certificat à un journal CT. La sortie contiendra une signature qui est en fait un SCT. Nous reviendrons sur la signature dans un moment.

$ curl \
    -X POST \
   --data @example-json-bundle.json \
    -H "Content-Type: application/json" \
    -H "User-Agent: lets-encrypt-ct-log-example-1.0" \
   https://oak.ct.letsencrypt.org/2020/ct/v1/add-chain
{"sct_version":0,"id":"5xLysDd+GmL7jskMYYTx6ns3y1YdESZb8+DzS/JBVG4=","timestamp":1576689972016,"extensions":"","signature":"BAMARzBFAiEA4OmuTcft9Jq3XLtcdZz9XinXCvYEY1RdSQICXayMJ+0CIHuujkKBLmQz5Cl/VG6C354cP9gxW0dfgMWB+A2yHi+E"}

Pour confirmer que le journal CT a été signé par le shard Oak 2020, nous utilisons le champ id de la commande ci-dessus et l'exécutons avec la commande suivante. Le résultat de cette opération sera l'ID du journal du CT.

$ base64 -d <<< "5xLysDd+GmL7jskMYYTx6ns3y1YdESZb8+DzS/JBVG4=" | xxd -p -c 64 | sed -e 's/../&:/g' -e 's/:$//' | tr '[:lower:]' '[:upper:]'
E7:12:F2:B0:37:7E:1A:62:FB:8E:C9:0C:61:84:F1:EA:7B:37:CB:56:1D:11:26:5B:F3:E0:F3:4B:F2:41:54:6E

En utilisant le champ de signature, nous pouvons vérifier que le certificat a été soumis à un journal. En utilisant notre guide d'approfondissement SCT, vous pouvez décoder plus en profondeur cette valeur.

$ base64 -d <<< "BAMARzBFAiEA4OmuTcft9Jq3XLtcdZz9XinXCvYEY1RdSQICXayMJ+0CIHuujkKBLmQz5Cl/VG6C354cP9gxW0dfgMWB+A2yHi+E" | xxd -p -c 16 | sed -e 's/../&:/g' -e 's/:$//' | tr '[:lower:]' '[:upper:]'
04:03:00:47:30:45:02:21:00:E0:E9:AE:4D:C7:ED:F4
9A:B7:5C:BB:5C:75:9C:FD:5E:29:D7:0A:F6:04:63:54
5D:49:02:02:5D:AC:8C:27:ED:02:20:7B:AE:8E:42:81
2E:64:33:E4:29:7F:54:6E:82:DF:9E:1C:3F:D8:31:5B
47:5F:80:C5:81:F8:0D:B2:1E:2F:84