Dernière mise à jour : | Voir toute la documentation
La transparence des certificats (CT) (en anglais CT pour Certificate Transparency) est un système permettant de journaliser et de monitorer l'émission de certficats TLS. CT améliore grandement la capacité de chacun à monitorer et étudier l'émission de certificats, et ces capacités ont menées à de nombreuses améliorations de l'écosystème des autorités de certification et de la sécurité du Web.En conséquence, la transparence des certificats devient rapidement une infrastructure critique.
Let's Encrypt soumet tous les certificats que nous émettons aux journaux de CT. Nous exploitons également deux journaux de CT scannés annuellement, nommés Oak et Testflume. Toutes les autorités de certification publiquement reconnues comme de confiance sont invitées à soumettre leurs certificats à nos journaux. De nombreuses autorités de certification racines ont déjà été incluses dans nos journaux de transparence des certificats.Contactez nous par courriel à propos de l'ajout de nouveaux certificats racine à nos journaux si le vôtre n'a pas été inclus.
Inscrivez vous pour recevoir les notifications de la rubrique CT announcements category du forum communautaire pour être informé des principales annonces au sujet de nos journaux de transparence des certificats.
Financement
Nous remercions les partenaires suivants pour leur généreux parrainage du journal de transparence des certificats de Let's Encrypt. Si votre organisation souhaite nous aider à poursuivre ce travail, n'hésitez pas à nous parrainer ou faire un don.
Architecture
Consultez notre blog pour voir Comment comment Let's Encrypt met en oeuvre les journaux de transparence des certificats!
Surveillance des journaux
Let's Encrypt a créé un outil de surveillance des journaux de transparence des certificats open source appelé CT Woodpecker. Nous utilisons cet outil pour surveiller la stabilité et la conformité de nos propres journaux, et nous espérons que d'autres le trouveront également utile.
CT Logs
Production
- Oak est incorporé dans les programmes Apple et Google de transparence des certificats.
- Notre environnement de production ACME API soumet des certificats ici.
-
-
Nom: Oak 2019
URI: https://oak.ct.letsencrypt.org/2019
Clé publique:MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFkqNKRuZ+Z8IOsnNJrUZ8gwp+KKGOdQrJ/HKhSadK/SJuoCc9+dxQ7awpmWIMr9SKcQeG5uRzG1kVSyFN4Wfcw==
Log ID:65:9B:33:50:F4:3B:12:CC:5E:A5:AB:4E:C7:65:D3:FD:E6:C8:82:43:77:77:78:E7:20:03:F9:EB:2B:8C:31:29
Window Start:2019-01-01T00:00Z
Window End:2020-01-07T00:00Z
State: Rejected - Shard Expired -
Nom: Oak 2020
URI: https://oak.ct.letsencrypt.org/2020
Clé publique:MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEfzb42Zdr/h7hgqgDCo1vrNJqGqbcUvJGJEER9DDqp19W/wFSB0l166hD+U5cAXchpH8ZkBNUuvOHS0OnJ4oJrQ==
Log ID: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
Window Start:2020-01-01T00:00Z
Window End:2021-01-07T00:00Z
State: Usable -
Nom: Oak 2021
URI: https://oak.ct.letsencrypt.org/2021
Clé publique:MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAELsYzGMNwo8rBIlaklBIdmD2Ofn6HkfrjK0Ukz1uOIUC6Lm0jTITCXhoIdjs7JkyXnwuwYiJYiH7sE1YeKu8k9w==
Log ID:94:20:BC:1E:8E:D5:8D:6C:88:73:1F:82:8B:22:2C:0D:D1:DA:4D:5E:6C:4F:94:3D:61:DB:4E:2F:58:4D:A2:C2
Window Start:2021-01-01T00:00Z
Window End:2022-01-07T00:00Z
State: Usable -
Nom: Oak 2022
URI: https://oak.ct.letsencrypt.org/2022
Clé publique:MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEhjyxDVIjWt5u9sB/o2S8rcGJ2pdZTGA8+IpXhI/tvKBjElGE5r3de4yAfeOPhqTqqc+o7vPgXnDgu/a9/B+RLg==
Log ID:DF:A5:5E:AB:68:82:4F:1F:6C:AD:EE:B8:5F:4E:3E:5A:EA:CD:A2:12:A4:6A:5E:8E:3B:12:C0:20:44:5C:2A:73
Window Start:2022-01-01T00:00Z
Window End:2023-01-07T00:00Z
State: Usable -
Nom: Oak 2023
URI: https://oak.ct.letsencrypt.org/2023
Clé publique:MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEsz0OeL7jrVxEXJu+o4QWQYLKyokXHiPOOKVUL3/TNFFquVzDSer7kZ3gijxzBp98ZTgRgMSaWgCmZ8OD74mFUQ==
Log ID:B7:3E:FB:24:DF:9C:4D:BA:75:F2:39:C5:BA:58:F4:6C:5D:FC:42:CF:7A:9F:35:C4:9E:1D:09:81:25:ED:B4:99
Window Start:2023-01-01T00:00Z
Window End:2024-01-07T00:00Z
State: Pending
-
Nom: Oak 2019
Testing
- Les Signed Certificate Timestamp (SCT) de ces journaux NE DEVRAIENT PAS être incorporés dans des certificats publiquement reconnus et acceptés.
- Les environnements ACME API Let's Encrypt de production et de qualification envoient tous deux des certificats à Testflume, mais l'environnement de production n'utilise pas les SCT résultants.
- Nous testons de nouvelles versions de Trillian et de certificate-transparency-go ici avant de les deployer en production.
- Testflume est accepte les listes de racines inclues dans OAK, plus quelques racines de test additionnelles.
- Testflume peut être utilisée par d'autres autorités de certification pour des tests.
-
-
Nom: Testflume 2019
URI: https://testflume.ct.letsencrypt.org/2019
Clé publique:MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEAg3+vFOesFW51rKECekioAt9Zo50atRoOJ0qLxF7DIEHsHneXLEpgO1WMreleRy1vEbUJD7TXoH9r8qSDGvyew==
Log ID:84:9F:5F:7F:58:D2:BF:7B:54:EC:BD:74:61:1C:EA:45:C4:9C:98:F1:D6:48:1B:C6:F6:9E:8C:17:4F:24:F3:CF
Window Start:2019-01-01T00:00Z
Window End:2020-01-07T00:00Z
-
Nom: Testflume 2020
URI: https://testflume.ct.letsencrypt.org/2020
Clé publique:MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEjdjcoKpeBShHgHvRm3BxD5+l+eHZudv3KmD5SDcLcI01Vj5TDTmxanQKCgpvm9pfnfB6URMQV3hhU1I02jRoRw==
Log ID:C6:3F:22:18:C3:7D:56:A6:AA:06:B5:96:DA:8E:53:D4:D7:15:6D:1E:9B:AC:8E:44:D2:20:2D:E6:4D:69:D9:DC
Window Start:2020-01-01T00:00Z
Window End:2021-01-07T00:00Z
-
Nom: Testflume 2021
URI: https://testflume.ct.letsencrypt.org/2021
Clé publique:MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdCLoJNt1QcNa7sNDp7g7oTJ+o/UIYEM6N/IZWT+dhdqtJZC+AODJ/4exdOwG04B4K6WrN1VB2ELKQIc/wU1lCw==
Log ID:03:ED:F1:DA:97:76:B6:F3:8C:34:1E:39:ED:9D:70:7A:75:70:36:9C:F9:84:4F:32:7F:E9:E1:41:38:36:1B:60
Window Start:2021-01-01T00:00Z
Window End:2022-01-07T00:00Z
-
Nom: Testflume 2022
URI: https://testflume.ct.letsencrypt.org/2022
Clé publique:MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEjy/rXcABuf0yhrm1+XgjDnh4XPD7vfMoyJOyT+KA+c2zuXVR98yQmp/Bl5ZFdGFwJuFcVrCw7IDo0EGKs7UCww==
Log ID:23:27:EF:DA:35:25:10:DB:C0:19:EF:49:1A:E3:FF:1C:C5:A4:79:BC:E3:78:78:36:0E:E3:18:CF:FB:64:F8:C8
Window Start:2022-01-01T00:00Z
Window End:2023-01-07T00:00Z
-
Nom: Testflume 2023
URI: https://testflume.ct.letsencrypt.org/2023
Clé publique:MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE8aLpnumqeISmQEB3hKPgtPJQG3jP2IftfaUQ4WPUihNBwUOEk1R9BMg5RGQwebWSsRlGIRiCvtE97Q45Vh3mqA==
Log ID:55:34:B7:AB:5A:6A:C3:A7:CB:EB:A6:54:87:B2:A2:D7:1B:48:F6:50:FA:17:C5:19:7C:97:A0:CB:20:76:F3:C6
Window Start:2023-01-01T00:00Z
Window End:2024-01-07T00:00Z
-
Nom: Testflume 2019
Log Operations
Pour énumérer les racines incluses dans un journal de 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 de certificats à un journal de CT est généralement gérée par les autorités de certification. Si vous souhaitez expérimenter cela, commencez par récupérer un certificat quelconque au format PEM sur 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 encodé au format JSON avec une structure particulière. Vous pouvez utiliser le générateur JSON fournit par https://crt.sh/gen-add-chain pour réaliser cette action. L'utilitaire crt.sh retournera un paquet JSON. Téléchargez la paquet JSON sur votre ordinateur, renommez le fichier si besoin, et émettez la commande suivantepour réaliser l'opération add-chain (ajout de chaîne) (RFC 6962 section 4.1) pour envoyer le certificat au journal de TC. La sortie contiendraa une signature qui est en fait un SCT. Dans un instant, plus d'informations concernant la signature.
$ 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 de CT a été signé par un "fragment" de Oak 2020, nous utilisons le champ id de la commande ci-dessus et l'exécutons via la commande suivante. Le résultat de cela affichera l'ID de log du journal de 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 signature, nous pouvons vérifier que le certificat a été soumis à un journal. En utilisant notreGuide SCT Deep Dive, vous pouvez davantage décoder 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