portail:installation-developpement:certificat-lets-encrypt

Certificat SSL avec Let's encrypt

La méthode précédente (auto-signé son certificat) est très bien et suffisante pour le dev, excepté que notre certificat n'est pas valide. Let's Encrypt propose des certificats gratuits valides et faciles à installer.
Rendez-vous sur le site de certbot pour obtenir les instructions.

Il suffit d'entrer votre Software et votre System et l'ensemble de la procédure vous est fourni!!

Dans mon cas: un serveur Apache sur un système Ubuntu16.04.

Ajouter le PPA Cerbot

 $ sudo apt-get update
 $ sudo apt-get install software-properties-common
 $ sudo add-apt-repository universe
 $ sudo add-apt-repository ppa:certbot/certbot
 $ sudo apt-get update

Installer Cerbot et Cerbot-apache:

$ sudo apt-get install certbot python-certbot-apache
 

Vous récupérer juste le certificat et vous ferez la configuration d'Apache à la main, dans ce cas:

$ sudo certbot certonly --apache

Puis passez à l'étape 3.

Vous laissez Cerbot tout configurer et il fait vraiment tout:

  • récupérer le certificat let's encrypt,
  • créer le fichier de l'hôte ssl,
  • activer le mode ssl de Apache,
  • et activer l'hôte ssl..
$ sudo certbot --apache

Il vous sera demandé le mail de l'administrateur et le nom de domaine…, mais normalement, c'est tout ce que vous avez à faire…. votre site est disponible en ssl.

S'il s'agit d'un virtual host, monsite.fr, vous pouvez taper:

$ sudo certbot --apache -d monsite.fr

Cerbot place les certificats dans le dossier /etc/letsencrypt/live/monsite.frmonsite.fr est le nom de domaine.

Les fichiers créés sont:

  • privkey.pem, la clé privée
  • cert.pem, le certificat de mon domaine monsite.fr
  • chain.pem, le certificat de Let's Encrypt
  • fullchain.pem, les certificats cert.pem et chain.pem combinés

Les fichiers de déclaration des hôtes sous Apache se trouve dans le dossier etc/apache2/sites-available. Dans la version automatique, Cerbot crée automatiquement un fichier monsite.fr-le-ssl.conf correspondant à partir de la version non-cryptée.

Dans le fichier, il ajoute les informations SSL:

<IfModule mod_ssl.c>
  <VirtualHost *:443>
    ServerName monsite.fr
    # ... etc
    SSLCertificateFile /etc/letsencrypt/live/monsite.fr/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/monsite.fr/privkey.pem
    # les informations sur le SSL
    Include /etc/letsencrypt/options-ssl-apache.conf
  </VirtualHost>
</IfModule>

Le fichier /etc/letsencrypt/options-ssl-apache.conf contient le reste des informations, non spécifiques au domaine pour le SSL:

SSLEngine on

# Intermediate configuration, tweak to your needs
SSLProtocol             all -SSLv2 -SSLv3
SSLCipherSuite          ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:........
SSLHonorCipherOrder     on
SSLCompression          off

SSLOptions +StrictRequire

Activer le mode SSL d'Apache

$ sudo a2enmod ssl

Activer le site https://monsite.fr, (en utilisant le nom du fichier de configuration du site sans l'extension conf)

$ sudo a2ensite monsite.fr-le-ssl

Redémarrer Apache

$ sudo service apache2 restart

2 possibilités: soit via la configuration de l'hôte dans Apache, soit l'ajout d'un fichier .htaccess à la racine de l'application.

Configuration apache

On ajoute la redirection dans le fichier de configuration du site http

<VirtualHost *:80>
  ServerName monsite.fr
  ServerAdmin machin@monsite.Fr
  Redirect permanent / https://monsite.fr/
</VirtualHost>
Puis on recharge la configuration

$ sudo service apache2 reload

Configuration via un .htaccess

Dans un fichier .htaccess

Pas très conseillé dans notre cas, car nous avons plusieurs applications … Le fichier .htaccess se trouve à la racine du site, on utilise le mode rewrite.

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{SERVER_PORT} ^80$ [OR]
  RewriteCond %{HTTPS} =off
  RewriteRule ^(.*)$ https://monsite.fr/$1 [R=301,L]
</IfModule>

On active le mode 'rewrite' de Apache et on redémarre Apache.

$ sudo a2enmod rewrite
$ sudo service apache2 restart
  • portail/installation-developpement/certificat-lets-encrypt.txt
  • Dernière modification : 2019/12/04 09:39
  • de epointal