Outils pour utilisateurs

Outils du site


Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
150-crypt:050-letsencrypt [le 08/06/2025 à 15:45] – créée prof150-crypt:050-letsencrypt [le 10/06/2025 à 15:06] (Version actuelle) – [Renouvellement du certificat] prof
Ligne 11: Ligne 11:
   mail.home.nain-t.net.  AAAA 2a01:e0a:875:b1d0::10   mail.home.nain-t.net.  AAAA 2a01:e0a:875:b1d0::10
 <note tip>«mail.home.nain-t.net» pourrait être un alias de «home.nain-t.net» du point de vue DNS. Cependant, nous verrons qu'il n'en est pas forcément de même pour le bon fonctionnement de SMTP.</note> <note tip>«mail.home.nain-t.net» pourrait être un alias de «home.nain-t.net» du point de vue DNS. Cependant, nous verrons qu'il n'en est pas forcément de même pour le bon fonctionnement de SMTP.</note>
-===== Appel de certbot =====+===== Usage de certbot ===== 
 +Plusieurs possibilités s'offrent pour effectuer une demande de certificat à Let's Encrypt et par la suite à effectuer son renouvellement. L'outil «certbot» est certainement le plus souple et le plus simple d'emploi. 
 Il est nécessaire que la CA puisse accéder à un serveur http implanté sur le demandeur. Si ce n'est pas le cas, certbot peut créer un mini serveur http temporaire, ce qui sera le cas ici. Il est nécessaire que la CA puisse accéder à un serveur http implanté sur le demandeur. Si ce n'est pas le cas, certbot peut créer un mini serveur http temporaire, ce qui sera le cas ici.
  
-Tous les paramètres utilisables avec la commande «certbot» sont détaillés dans le manuel et [[https://eff-certbot.readthedocs.io/en/stable/|sur le site officiel]].+Tous les paramètres utilisables avec la commande «certbot» sont détaillés dans le manuel et [[https://eff-certbot.readthedocs.io/en/stable/|sur le site officiel]]. Nous exploitons ici une extension possible des certificats X509, qui permet d'utiliser le même certificat pour «home.nain-t.net» et «mail.home.nain-t.net». 
 + 
 +<note important>La procédure nécessite de disposer d'un serveur http sur le port 80. Si ce n'est pas le cas, «certbot» en ouvre un de façon temporaire, ce que nous faisons ici avec l'option ''--standalone''. Si le port 80 est déjà utilisé par un autre serveur, la procédure sera différente, où alors il faudra arrêter temporairement le serveur actif.</note>
 <html><pre class="code"> <html><pre class="code">
 <b>certbot certonly --standalone -d home.nain-t.net. -d mail.home.nain-t.net.</b> <b>certbot certonly --standalone -d home.nain-t.net. -d mail.home.nain-t.net.</b>
Ligne 54: Ligne 58:
             06:87:a5:dd:2b:61:33:af:1b:e8:0c:c6:1f:86:ec:d0:c1:b8             06:87:a5:dd:2b:61:33:af:1b:e8:0c:c6:1f:86:ec:d0:c1:b8
         Signature Algorithm: ecdsa-with-SHA384         Signature Algorithm: ecdsa-with-SHA384
-        Issuer: C=US, O=Let's Encrypt, CN=E5+        <b>Issuer: C=US, O=Let's Encrypt, CN=E5</b>
         Validity         Validity
-            Not Before: Apr 29 06:30:54 2025 GMT +            <b>Not Before: Apr 29 06:30:54 2025 GMT 
-            Not After : Jul 28 06:30:53 2025 GMT +            Not After : Jul 28 06:30:53 2025 GMT</b> 
-        Subject: CN=home.nain-t.net+        Subject: <b>CN=home.nain-t.net</b>
         Subject Public Key Info:         Subject Public Key Info:
-            Public Key Algorithm: id-ecPublicKey+<span class="hly">            Public Key Algorithm: <b>id-ecPublicKey</b>
                 Public-Key: (256 bit)                 Public-Key: (256 bit)
                 pub:                 pub:
Ligne 69: Ligne 73:
                     bb:be:80:47:92                     bb:be:80:47:92
                 ASN1 OID: prime256v1                 ASN1 OID: prime256v1
-                NIST CURVE: P-256+                NIST CURVE: P-256</span>
         X509v3 extensions:         X509v3 extensions:
             X509v3 Key Usage: critical             X509v3 Key Usage: critical
Ligne 81: Ligne 85:
             X509v3 Authority Key Identifier:              X509v3 Authority Key Identifier: 
                 9F:2B:5F:CF:3C:21:4F:9D:04:B7:ED:2B:2C:C4:C6:70:8B:D2:D7:0D                 9F:2B:5F:CF:3C:21:4F:9D:04:B7:ED:2B:2C:C4:C6:70:8B:D2:D7:0D
-            Authority Information Access: +            <b>Authority Information Access: 
                 OCSP - URI:http://e5.o.lencr.org                 OCSP - URI:http://e5.o.lencr.org
-                CA Issuers - URI:http://e5.i.lencr.org/ +                CA Issuers - URI:http://e5.i.lencr.org/</b> 
-            X509v3 Subject Alternative Name:  +<span class="hlo">            X509v3 Subject Alternative Name:  
-                DNS:home.nain-t.net, DNS:mail.home.nain-t.net+                DNS:home.nain-t.net, DNS:mail.home.nain-t.net</span>
             X509v3 Certificate Policies:              X509v3 Certificate Policies: 
                 Policy: 2.23.140.1.2.1                 Policy: 2.23.140.1.2.1
Ligne 126: Ligne 130:
         fa:5c:49:7e:45:0e:bf:e6:a0:cd:72:a6:91         fa:5c:49:7e:45:0e:bf:e6:a0:cd:72:a6:91
 </pre></html> </pre></html>
 +Le certificat est bien issu de Let's Encrypt, il est valable 3 mois, nous retrouvons les informations permettant d'obtenir les listes de révocation.
  
 +Ce qui est remarquable, c'est:
 +  - le choix de l'algorithme de courbe elliptique pour le chiffrement, actuellement considéré comme plus solide que RSA,
 +  - les «alternatives names» qui permettent d'utiliser le même certificat pour plusieurs URI, conformément à la demande.
 +==== Et s'il y a déjà un serveur http ? ====
 +Dans ce cas, certbot propose bien d'autres solutions. Trop nombreuses pour être traitées ici. [[https://eff-certbot.readthedocs.io/en/stable/using.html#getting-certificates-and-choosing-plugins|La documentation officielle]] détaille toutes les solutions possibles.
 +==== Renouvellement du certificat ====
 +Le problème est ici d'autant plus important que la durée de validité du certificat est de seulement trois mois. La norme prévoit de pouvoir renouveler un certificat existant, en en faisant la demande à la PKI. 
 +
 +Debian 12 et suivantes, lors de l'installation de ''certbot'', a mis en place une tâche «cron» que l'on peut retrouver dans ''/etc/cron.d/certbot''. Elle a également installé les fichiers ''certbot.timer'' et ''certbot.service'' dans ''/usr/lib/systemd/system''
 +<html><pre class="code">
 +<b>systemctl status certbot.timer</b>
 +
 +<span class="hlg">● certbot.timer - Run certbot twice daily</span>
 +     <span class="hly">Loaded: loaded</span> (/usr/lib/systemd/system/certbot.timer; enabled; preset: enabled)
 +     <span class="hly">Active: active (waiting)</span> since Sun 2025-06-08 17:48:17 CEST; 1h 14min ago
 + Invocation: 49171d78e066413785a2920c493b3830
 +    Trigger: Mon 2025-06-09 01:14:30 CEST; 6h left
 +   <span class="hly">Triggers: ● certbot.service</span>
 +</pre></html>
 +==== Les points de raccordement ====
 +les «hooks» permettent de faire appel à des scripts personnels durant certaines étapes du processus de renouvellement de certificats. Sur Debian, ces scrips peuvent être placés dans ''/etc/letsencrypt/renewal-hooks''à trois étapes particulières:
 +  - avant le début du processus dans le sous-répertoire ''pre'',
 +  - lors du déploiement du renouvellement réussi dans le sous-répertoire ''deploy'',
 +  - à la fin du processus dans le sous-répertoire  ''post''.
Appel à Let's encrypt: Dernière modification le: 08/06/2025 à 15:45 par prof