Depuis quelques années maintenant, il est possible de bénéficier d'un certificat SSL gratuitement par l'intermédiaire de Let's Encrypt. Cette autorité de certification publie des certificats reconnus par les navigateurs. Les certificats délivrés sont valables pour une durée de 90 jours renouvelables. Sa configuration ne pourra se faire qu'avec un domaine et un DNS actif qui garantit un minimum la véracité du contenu (une méthode existe pour produire un certificat local si nécessaire).
Il faudra donc remplacer le nom exemple.com dans les lignes ci-dessous par le nom de votre domaine.
Table des matières
Télécharger le client cerbot-auto de Let's Encrypt et de le sauvegarder dans le répertoire /usr/bin du serveur :
sudo wget https://dl.eff.org/certbot- auto -0 /usr/sbin/certbot-auto
sudo chmod a+x /usr/sbin/certbot-auto
Récupérer un certificat de Let's Encrypt. Après vérification de l'authenticité, le certificat est alors envoyé :
sudo certbot-auto certonly --standalone -d exemple.com -d www.exemple.com
À la suite de quoi on vous demande une adresse email qui sera utilisée pour l'envoi d'alertes concernant le certificat. C'est ce script qui va créer et envoyer le fameux certificat SSL dans le répertoire vHost d'Apache. Si toutes les étapes se sont bien déroulées, on peut vérifier la présence des certificats :
ls /etc/letsencrypt/live/exemple.com
cert.pem
chain.pem
fullchain.pem
privkey.pem
Pour la suite, il est nécessaire d'adapter le fichier vHost pour qu'il prenne en compte ce nouveau certificat en ajoutant quelques lignes.
cd /etc/apache2/sites-enabled/
sudo vim exemple.com.conf
Puis on ajoute les lignes suivantes et on enregistre :
SSLEngine on
SSLCertificateFile
/etc/letsencrypt/live/exemple.com/cert.pem SSLCertificateKeyFile
/etc/letsencrypt/live/exemple.com/privkey- pem
SSLCertificateChainFile
/etc/letsencrypt/live/exemple.com/chain. pem
sudo a2enmod ssl
sudo Systeemat1 roload apache2
Pour finir, on ajoute une ligne au fichier crontab pour lancer le renouvellement automatique du certificat avant son échéance :
0 2 * * * sudo /usr/sbin/certbot-auto -q renew
Ici, cette ligne va déclencher une demande de certificat tous les jours à 2h du matin, Attention, on ne recevra pas pour autant un nouveau certificat tous les jours, mais uniquement quand il arrive à expiration.