{"id":855,"date":"2022-05-03T22:57:52","date_gmt":"2022-05-03T20:57:52","guid":{"rendered":"https:\/\/codacola.xyz\/?p=855"},"modified":"2022-05-03T23:39:41","modified_gmt":"2022-05-03T21:39:41","slug":"supprimer-un-certificat-lets-encrypt","status":"publish","type":"post","link":"https:\/\/hinakuu.xyz\/?p=855","title":{"rendered":"Revoquer et supprimer un certificat let&rsquo;s encrypt"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">R\u00e9vocation des certificats<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Lorsque la clef priv\u00e9e correspondante d\u2019un certificat n\u2019est plus s\u00fbre, vous devez r\u00e9voquer le certificat. Cela peut se produire pour diff\u00e9rentes raisons. Par exemple, vous pouvez avoir accidentellement partag\u00e9 la clef priv\u00e9e sur un site Web public; les pirates pourraient avoir copi\u00e9 la clef priv\u00e9e de vos serveurs; ou les pirates pourraient prendre le contr\u00f4le temporaire de vos serveurs ou de votre configuration DNS, et utiliser la clef pour valider et \u00e9mettre un certificat dont ils d\u00e9tiennent la clef priv\u00e9e.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lorsque vous r\u00e9voquez un certificat Let\u2019s Encrypt, Let\u2019s Encrypt publiera les informations de cette r\u00e9vocation via le&nbsp;Protocole de statut de certificat en ligne (OCSP), et certains navigateurs v\u00e9rifieront l\u2019OCSP pour voir s\u2019ils doivent faire confiance \u00e0 un certificat. Notez que l\u2019OCSP&nbsp;a quelques probl\u00e8mes fondamentaux, tous les navigateurs n\u2019effectueront donc pas cette v\u00e9rification. Pourtant, la r\u00e9vocation des certificats qui correspondent \u00e0 des clefs priv\u00e9es compromises est une pratique importante et est exig\u00e9e par Let\u2019s Encrypt\u2019s&nbsp;Contrat du souscripteur&nbsp;(en anglais).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Source : <a href=\"https:\/\/letsencrypt.org\/fr\/docs\/revoking\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/letsencrypt.org\/fr\/docs\/revoking\/<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour r\u00e9voquer un certificat avec Let\u2019s Encrypt, vous utiliserez l&rsquo;API ACME, tr\u00e8s probablement via un client ACME comme&nbsp;Certbot. Vous devrez prouver \u00e0 Let\u2019s Encrypt que vous \u00eates autoris\u00e9 \u00e0 r\u00e9voquer le certificat. Il existe trois fa\u00e7ons de proc\u00e9der:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"depuis-le-compte-qui-a-\u00e9mis-le-certificat\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-amber-color\">Depuis le compte qui a \u00e9mis le certificat<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Si vous avez initialement d\u00e9livr\u00e9 le certificat et que vous avez toujours le contr\u00f4le du compte que vous avez utilis\u00e9 pour le cr\u00e9er, vous pouvez le r\u00e9voquer \u00e0 l\u2019aide de votre identifiant de compte. Certbot tentera cela par d\u00e9faut. Exemple:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>certbot revoke --cert-path \/etc\/letsencrypt\/archive\/${YOUR_DOMAIN}\/cert1.pem<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"utilisation-de-la-clef-priv\u00e9e-du-certificat\">Utilisation de la clef priv\u00e9e du certificat<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Si vous n\u2019avez pas d\u00e9livr\u00e9 le certificat \u00e0 l\u2019origine, mais que vous avez une copie de la clef priv\u00e9e correspondante, vous pouvez r\u00e9voquer le certificat en utilisant cette clef priv\u00e9e pour signer la demande de r\u00e9vocation. Par exemple, si vous voyez qu\u2019une clef priv\u00e9e a \u00e9t\u00e9 accidentellement rendue publique, vous pouvez utiliser cette m\u00e9thode pour r\u00e9voquer des certificats m\u00eame si vous n\u2019\u00eates pas la personne \u00e0 qui ce certificat a \u00e9t\u00e9 d\u00e9livr\u00e9.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour utiliser cette m\u00e9thode, vous devez d\u2019abord t\u00e9l\u00e9charger le certificat \u00e0 r\u00e9voquer. Let\u2019s Encrypt enregistre tous les certificats dans le&nbsp;Certificate Transparency, afin que vous puissiez trouver et t\u00e9l\u00e9charger des certificats \u00e0 partir d\u2019un moniteur de journal comme&nbsp;crt.sh.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vous aurez \u00e9galement besoin d\u2019une copie de la clef priv\u00e9e au format PEM. Une fois que vous les avez, vous pouvez r\u00e9voquer le certificat comme suit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>certbot revoke --cert-path \/PATH\/TO\/cert.pem --key-path \/PATH\/TO\/key.pem<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"utiliser-un-autre-compte-autoris\u00e9\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-pale-pink-color\">Utiliser un autre compte autoris\u00e9<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Si quelqu\u2019un a \u00e9mis un certificat apr\u00e8s avoir compromis votre h\u00f4te ou votre DNS, vous souhaitez r\u00e9voquer ce certificat apr\u00e8s avoir repris le contr\u00f4le. Afin de r\u00e9voquer le certificat, Let\u2019s Encrypt devra s\u2019assurer que vous contr\u00f4lez les noms de domaine de ce certificat (sinon des personnes pourraient r\u00e9voquer les certificats des autres sans autorisation)! Pour valider ce contr\u00f4le, Let\u2019s Encrypt utilise le m\u00eame m\u00e9thode qu\u2019il utilise pour valider le contr\u00f4le de l\u2019\u00e9mission: vous pouvez mettre une&nbsp;valeur dans un enregistrement de type TXT du DNS&nbsp;ou placer un&nbsp;fichier sur un serveur HTTP. G\u00e9n\u00e9ralement, un client ACME s\u2019en chargera pour vous. Notez que la plupart des clients ACME combinent validation et d\u00e9livrance, donc la seule fa\u00e7on de demander des validations est de tenter l\u2019\u00e9mission. Vous pouvez ensuite r\u00e9voquer le certificat r\u00e9sultant si vous n\u2019en voulez pas, ou simplement d\u00e9truire la clef priv\u00e9e. Si vous voulez absolument \u00e9viter d\u2019\u00e9mettre un certificat, vous pouvez inclure un nom de domaine inexistant dans votre ligne de commande, ce qui entra\u00eenera l\u2019\u00e9chec de l\u2019\u00e9mission tandis que les noms de domaines existants seront valid\u00e9s. Pour ce faire, ex\u00e9cutez:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>certbot certonly --manual --preferred-challenges<strong>=<\/strong>dns -d ${YOUR_DOMAIN} -d nonexistent.${YOUR_DOMAIN}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Puis suivez les instructions. Si vous pr\u00e9f\u00e9rez la validation utilisant le port HTTP plut\u00f4t que le DNS, remplacez l\u2019option&nbsp;<code>--preferred-challenges<\/code>&nbsp;par&nbsp;<code>--preferred-challenges=http<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Une fois que vous avez valid\u00e9 le contr\u00f4le de tous les noms de domaine dans le certificat que vous souhaitez r\u00e9voquer, vous pouvez t\u00e9l\u00e9charger le certificat depuis [crt.sh] (https:\/\/crt.sh\/),&nbsp;puis r\u00e9voquez le certificat comme si vous l\u2019aviez d\u00e9livr\u00e9:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>certbot revoke --cert-path \/PATH\/TO\/downloaded-cert.pem<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">Supprimer le certificat Let&rsquo;s encrypt<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Certbot<\/em>, le client de\u00a0<em>Let&rsquo;s Encrypt<\/em>, stocke ses fichiers dans\u00a0<code>\/etc\/letsencrypt<\/code>\u00a0et\u00a0notamment les certificats.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mais pour chaque certificat, il existe une s\u00e9rie d&rsquo;autres fichiers qui lui sont attach\u00e9s, et qui permettent \u00e0&nbsp;<em>Certbot<\/em>&nbsp;d&rsquo;assurer un fonctionnement normal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour effectuer une suppression compl\u00e8te d&rsquo;un certificat, il est conseill\u00e9 de ne pas effacer le fichier \u00e0 la main, mais d&rsquo;utiliser la sous-commande&nbsp;<code>delete<\/code>&nbsp;de&nbsp;<em>Certbot<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Attention:<\/strong>&nbsp;le processus de suppression est&nbsp;<strong>irr\u00e9versible<\/strong>. Soyez s\u00fbr de ce que vous fa\u00eetes avant de le faire.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-light-green-cyan-color\">Identifier le certificat \u00e0 supprimer<\/mark><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Je liste les certificats&nbsp;<em>Let&rsquo;s Encrypt<\/em>&nbsp;pr\u00e9sents sur le serveur :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo certbot certificates<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ce qui affiche par exemple :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Found the following certs:\n  Certificate Name: www.mondomaine.com\n    Domains: www.mondomaine.com xmpp.mondomaine.com ftp.mondomaine.com\n    Expiry Date: 2017-11-25 20:50:28+00:00 (VALID: 4 days)\n    Certificate Path: \/etc\/letsencrypt\/live\/www.mondomaine.com\/fullchain.pem\n    Private Key Path: \/etc\/letsencrypt\/live\/www.mondomaine.com\/privkey.pem\n  Certificate Name: abc\n    Domains: abc.mondomaine.com mondomaine.com\n    Expiry Date: 2017-11-25 20:23:24+00:00 (VALID: 4 days)\n    Certificate Path: \/etc\/letsencrypt\/live\/abc\/fullchain.pem\n    Private Key Path: \/etc\/letsencrypt\/live\/abc\/privkey.pem<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Gr\u00e2ce aux lignes d\u00e9butant par&nbsp;<strong>Certificate Name<\/strong>, je peux identifier le nom du certificat que je souhaite supprimer et v\u00e9rifier qu&rsquo;il couvre bien les domaines cibles.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Je souhaite supprimer le premier certificat, dont le nom est&nbsp;<strong>www.mondomaine.com<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Supprimer le certificat<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Pour cela, il suffit de lancer la commande suivante :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo certbot delete --cert-name www.mondomaine.com<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ce qui donne en sortie :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Saving debug log to \/var\/log\/letsencrypt\/letsencrypt.log\n\n-------------------------------------------------------------------------------\nDeleted all files relating to certificate www.mondomaine.com.\n-------------------------------------------------------------------------------<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Je peux alors lister \u00e0 nouveau les certificats et constater qu&rsquo;il a bien \u00e9t\u00e9 supprim\u00e9.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Attention:&nbsp;<\/strong>un certificat supprim\u00e9 n&rsquo;est pas r\u00e9voqu\u00e9 pour autant. S&rsquo;il me semble qu&rsquo;un certificat est compromis (clef priv\u00e9e vol\u00e9e, serveur pirat\u00e9, etc),&nbsp;je dois le r\u00e9voquer&nbsp;<strong>avant<\/strong>&nbsp;de le supprimer.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>R\u00e9vocation des certificats Lorsque la clef priv\u00e9e correspondante d\u2019un certificat n\u2019est plus s\u00fbre, vous devez r\u00e9voquer le certificat.<\/p>\n","protected":false},"author":1,"featured_media":856,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-855","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/hinakuu.xyz\/index.php?rest_route=\/wp\/v2\/posts\/855","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hinakuu.xyz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hinakuu.xyz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hinakuu.xyz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hinakuu.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=855"}],"version-history":[{"count":5,"href":"https:\/\/hinakuu.xyz\/index.php?rest_route=\/wp\/v2\/posts\/855\/revisions"}],"predecessor-version":[{"id":864,"href":"https:\/\/hinakuu.xyz\/index.php?rest_route=\/wp\/v2\/posts\/855\/revisions\/864"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hinakuu.xyz\/index.php?rest_route=\/wp\/v2\/media\/856"}],"wp:attachment":[{"href":"https:\/\/hinakuu.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=855"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hinakuu.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=855"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hinakuu.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=855"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}