LetsEncrypt

De Hegyd Doc.

(Différences entre les versions)
(Page créée avec « == Installation d’un certificat LetsEncrypt avec renouvellement automatique pour un NDD : == <pre> Ticket : https://v2.produhost.net/panel/15744/support/ticket/205183 … »)
(Installation)
 
(11 versions intermédiaires masquées)
Ligne 3 : Ligne 3 :
-
<pre>
+
* Ticket : https://v2.produhost.net/panel/15744/support/ticket/205183
-
Ticket : https://v2.produhost.net/panel/15744/support/ticket/205183
+
-
Sur le serveur intrastore.hegyd.net
+
''''Sur le serveur intrastore.hegyd.net''
-
Générer un certificat SSL pour candidats.raisonhome.com par Let's Encrypt avec renouvellement automatique.
+
''Générer un certificat SSL pour candidats.raisonhome.com par Let's Encrypt avec renouvellement automatique.''
-
Redirection auto port 80 vers 443
+
''Redirection auto port 80 vers 443''
-
...
+
''...''''
-
</pre>
+
 
 +
 
 +
'''L'utilisation de certbot-auto est recommandé car les versions du "acme-challenge" du certbot de la distribution ( dépôts backports ) ne sont plus supportées.'''
 +
 
 +
== Installation ==
* Récupération de l’os et de sa version sur intrastore.hegyd.net
* Récupération de l’os et de sa version sur intrastore.hegyd.net
-
cat /etc/debian_version  
+
 
-
8.11 ( ici debian / jessie )
+
<pre>
-
Se connecter sur https://certbot.eff.org/ et choisir sa config OS / Serveur :  
+
#cat /etc/debian_version
 +
8.11
 +
</pre>
 +
 
 +
ici Debian / Jessie
 +
 
 +
* Se connecter sur https://certbot.eff.org/ et choisir sa config OS / Serveur :  
 +
 
https://certbot.eff.org/lets-encrypt/debianjessie-apache
https://certbot.eff.org/lets-encrypt/debianjessie-apache
-
et faire l’installation
+
 
-
se connecter en root, sur intrastore.hegyd.net:
+
 
-
Vérifier si l’ancien certbot n’esp installé  :  
+
* Se connecter en root, sur intrastore.hegyd.net:
 +
 
 +
* Vérifier si l’ancien certbot n’est pas installé  :  
 +
 
 +
<pre>
apt remove certbot
apt remove certbot
 +
</pre>
 +
puis :
puis :
 +
 +
<pre>
wget https://dl.eff.org/certbot-auto
wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto
 +
</pre>
-
Installer les dépendances, python et générer les certificats :
+
* Installer les dépendances, python et générer les certificats :
 +
 
 +
<pre>
/usr/local/bin/certbot-auto –apache
/usr/local/bin/certbot-auto –apache
-
En cas d’erreur, faire les modifications nécessaire et relancer la commande.
+
</pre>
-
/usr/local/bin/certbot-auto --apache
+
* En cas d’erreur, faire les modifications nécessaire et relancer la commande.
-
Ensuite on teste le certificat :
+
 
 +
<pre>
 +
/usr/local/bin/certbot-auto –apache
 +
</pre>
 +
 
 +
* Ensuite on teste le certificat :
 +
 
 +
<pre>
certbot-auto certonly --webroot -w /var/projects/cloud/prod/raison-home -d candidats.raisonhome.com -m tech@hegyd.net –dry-run
certbot-auto certonly --webroot -w /var/projects/cloud/prod/raison-home -d candidats.raisonhome.com -m tech@hegyd.net –dry-run
-
si c’est ok on enleve le « --dry-run »
+
</pre>
 +
 
 +
* si c’est ok on enleve le « --dry-run »
 +
 
 +
<pre>
certbot-auto certonly --webroot -w /var/projects/cloud/prod/raison-home -d candidats.raisonhome.com -m tech@hegyd.net  
certbot-auto certonly --webroot -w /var/projects/cloud/prod/raison-home -d candidats.raisonhome.com -m tech@hegyd.net  
-
Le certificat va être généré dans /etc/letsencrypt/live/candidats.raisonhome.com
+
</pre>
-
qui contient les fichiers pour le certificat à configurer dans le vhost Apache :
+
 
 +
* Le certificat va être généré dans /etc/letsencrypt/live/candidats.raisonhome.com qui contient les fichiers pour le certificat à configurer dans le vhost Apache :
 +
 
cert.pem  chain.pem  fullchain.pem  privkey.pem
cert.pem  chain.pem  fullchain.pem  privkey.pem
-
modifier la conf du vhost dans /etc/apache2/sites-enabled/intrastore.conf  
+
 
 +
* modifier la conf du vhost dans /etc/apache2/sites-enabled/intrastore.conf:
 +
 
 +
<pre>
# PROD candidats.raisonhome.com
# PROD candidats.raisonhome.com
<Virtualhost *:80>
<Virtualhost *:80>
Ligne 68 : Ligne 105 :
         SSLCertificateChainFile /etc/letsencrypt/live/candidats.raisonhome.com/chain.pem
         SSLCertificateChainFile /etc/letsencrypt/live/candidats.raisonhome.com/chain.pem
</Virtualhost>
</Virtualhost>
-
Vérifier la configuration et recharger apache :
+
</pre>
 +
 
 +
* Vérifier la configuration et recharger apache :
 +
 
 +
<pre>
apachectl -t
apachectl -t
service apache2 reload
service apache2 reload
-
Vérifier le site :
+
</pre>
 +
 
 +
* Vérifier le site, la redirection et le certificat :
 +
<pre>
https://candidats.raisonhome.com
https://candidats.raisonhome.com
-
Ensuite mettre le cron de renouvellement dans la crontab :
+
</pre>
 +
 
 +
== installation du cron de renouvellement ( renew ) ==
 +
 
 +
* Ensuite mettre le cron de renouvellement dans la crontab :
 +
 
 +
<pre>
echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew -q" | sudo tee -a /etc/crontab > /dev/null
echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew -q" | sudo tee -a /etc/crontab > /dev/null
-
ce qui donne pour etc/crontab
+
</pre>
 +
 
 +
* ce qui donne pour etc/crontab
 +
 
 +
<pre>
0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew -q
0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew -q
-
Recharger le service cron
+
</pre>
-
service httpd
+
 
 +
* Recharger le service cron
 +
 
 +
<pre>
 +
service cron reload
 +
</pre>
 +
 
 +
Et voila, reste à surveiller le cron pour valider le bon renouvellement automatique.
 +
 
 +
[[Catégorie:Administration serveurs]]

Version actuelle en date du 6 janvier 2021 à 14:29

[modifier] Installation d’un certificat LetsEncrypt avec renouvellement automatique pour un NDD :

''Sur le serveur intrastore.hegyd.net Générer un certificat SSL pour candidats.raisonhome.com par Let's Encrypt avec renouvellement automatique. Redirection auto port 80 vers 443 ...''


L'utilisation de certbot-auto est recommandé car les versions du "acme-challenge" du certbot de la distribution ( dépôts backports ) ne sont plus supportées.

[modifier] Installation

  • Récupération de l’os et de sa version sur intrastore.hegyd.net
#cat /etc/debian_version
8.11

ici Debian / Jessie

https://certbot.eff.org/lets-encrypt/debianjessie-apache


  • Se connecter en root, sur intrastore.hegyd.net:
  • Vérifier si l’ancien certbot n’est pas installé  :
apt remove certbot

puis :

wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto
  • Installer les dépendances, python et générer les certificats :
 
/usr/local/bin/certbot-auto –apache
  • En cas d’erreur, faire les modifications nécessaire et relancer la commande.
 
/usr/local/bin/certbot-auto –apache
  • Ensuite on teste le certificat :
 
certbot-auto certonly --webroot -w /var/projects/cloud/prod/raison-home -d candidats.raisonhome.com -m tech@hegyd.net –dry-run
  • si c’est ok on enleve le « --dry-run »
 
certbot-auto certonly --webroot -w /var/projects/cloud/prod/raison-home -d candidats.raisonhome.com -m tech@hegyd.net 
  • Le certificat va être généré dans /etc/letsencrypt/live/candidats.raisonhome.com qui contient les fichiers pour le certificat à configurer dans le vhost Apache :

cert.pem chain.pem fullchain.pem privkey.pem

  • modifier la conf du vhost dans /etc/apache2/sites-enabled/intrastore.conf:
# PROD candidats.raisonhome.com
<Virtualhost *:80>
        ServerName candidats.raisonhome.com 
        ServerAlias *.candidats.raisonhome.com
        VirtualDocumentRoot /var/projects/cloud/prod/raison-home
        <Directory "/var/projects/cloud/prod/raison-home">
                Options Indexes FollowSymlinks MultiViews
                AllowOverride All
                Require all granted
        </Directory>
       RewriteEngine On
       RewriteCond %{HTTPS} off
       RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</Virtualhost>
<Virtualhost *:443>
        ServerName candidats.raisonhome.com 
        ServerAlias *.candidats.raisonhome.com
        VirtualDocumentRoot /var/projects/cloud/prod/raison-home
        <Directory "/var/projects/cloud/prod/raison-home">
                Options Indexes FollowSymlinks MultiViews
                AllowOverride All
                Require all granted
        </Directory>
        SSLEngine On
        SSLCertificateFile /etc/letsencrypt/live/candidats.raisonhome.com/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/candidats.raisonhome.com/privkey.pem
        SSLCertificateChainFile /etc/letsencrypt/live/candidats.raisonhome.com/chain.pem
</Virtualhost>
  • Vérifier la configuration et recharger apache :
apachectl -t
service apache2 reload
  • Vérifier le site, la redirection et le certificat :
https://candidats.raisonhome.com

[modifier] installation du cron de renouvellement ( renew )

  • Ensuite mettre le cron de renouvellement dans la crontab :
echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew -q" | sudo tee -a /etc/crontab > /dev/null
  • ce qui donne pour etc/crontab
0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew -q
  • Recharger le service cron
service cron reload

Et voila, reste à surveiller le cron pour valider le bon renouvellement automatique.