====== Certificats Let's Encrypt ======
===== Introduction =====
Dès à présent les certificats ssl deviennent gratuits grâce à Let's Encrypt qui révolutionne vraiment ce domaine.
===== Installation d'un certificat =====
==== Récupération des sources ====
git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
cd /opt/letsencrypt/
==== Génération du certificat ====
./letsencrypt-auto certonly --webroot -w /var/www/www.domaine.fr/ -d domaine.fr -d www.domaine.fr
* La racine du web doit être une partie accessible depuis le nom de domaine, car la génération du certificat doit ce faire avec un échange de fichiers via ce répertoire.
==== Préparation du vhost ( apache2) ====
vim /etc/apache2/sites-available/ssl-www.domaine.fr
ServerAdmin contact@domaine.fr
ServerName domaine.fr
ServerAlias www.domaine.fr
SSLEngine on
# Regles SSL A+ sur ssllabs
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLProtocol All -SSLv2 -SSLv3 -TLSv1
SSLHonorCipherOrder on
SSLCompression off
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
SSLCompression off
SSLCertificateFile /etc/letsencrypt/live/domaine.fr/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domaine.fr/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/domaine.fr/fullchain.pem
DocumentRoot /var/www/www.domaine.fr/
Options FollowSymLinks
AllowOverride None
Options Indexes FollowSymLinks MultiViews
AllowOverride none
Order allow,deny
allow from all
ErrorLog /var/log/apache2/error-www.domaine.fr-ssl.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access-www.domaine.fr-ssl.log combined
a2enmod ssl
a2ensite ssl-www.domaine.fr
service apache2 reload
===== Tests de fonctionnement =====
https://www.sslshopper.com/ssl-checker.html#hostname=domaine.fr
===== Renouvellement automatique =====
* Let's Encrypt fournit des certificats valides durant 90 jours. Voici un petit script afin d'automatiser cette procédure de renouvellement.
mkdir /opt/scripts/
cd /opt/scripts/
vim /etc/letsencrypt/domaine.fr.cfg
authenticator = webroot
webroot-path = /var/www/www.domaine.fr/
renew-by-default
agree-tos
email = meme_mail_que_demander_a_l_install@domaine.com
vim renew_certs_letsencrypts.sh
#!/bin/bash
cd /opt/letsencrypt/
./letsencrypt-auto certonly --config /etc/letsencrypt/domaine.fr.cfg -d domaine.fr -d www.domaine.fr
if [ $? -ne 0 ]
then
ERRORLOG=`tail /var/log/letsencrypt/letsencrypt.log`
echo -e "Bonjour,\nLe certificat https pour domaine.fr n'as PAS été renouvelé automatiquement \n \n" $ERRORLOG | mail -s "ERREUR renouvellement de certificats" mailperso@domaine.com
else
service apache2 reload
echo -e "Bonjour,\nLe certificat https pour domaine.fr renouvelé automatiquement" | mail -s "Renouvellement de certificats" mailperso@domaine.com
fi
chmod +x renew_certs_letsencrypts.sh
crontab -e
@monthly /opt/scripts/renew_certs_letsencrypts.sh
Source : letsencrypt.readthedocs.org
[[systemes:start|Retour]]