Certificats SSL avec letsencrypt

 

HTTPS Logo L’avantage avec letsencrypt, c’est que le seul pré-requis est d’être propriétaire du domaine (ou du sous domaine). Le nom DNS doit correspondre à l’hôte qui a lancé le processus de certification.

dnf install letsencrypt

On fait notre demande de certificat

letsencrypt --text --email admin@example.com --domains www.example.com,example.com,apache.example.com --agree-tos --webroot --webroot-path /var/www/html certonly

Il ne reste plus qu’à déclarer notre clé privée et notre certificat dans le fichier de configuration d’Apache: /etc/httpd/conf.d/ssl.conf

SSLCertificateFile /etc/letsencrypt/live/www.example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.example.com/privkey.pem

Maintenant il nous faut encore mettre en place le renouvellement automatique, cr ce certificat n’est valable que 90 jours (et des discussions sont en cours pour abaisser cette période).
On va se servir des timers de systemd:

  • /etc/systemd/system/letsencrypt-renewal.service
    [Unit]
    Description=Automatically renew the letsencrypt certificate
    
    [Service]
    Type=oneshot
    ExecStart=/usr/bin/letsencrypt renew --agree-tos --email admin@example.com --renew-by-default
    ExecStart=/usr/bin/systemctl reload httpd
  • /etc/systemd/system/letsencrypt-renewal.timer
    [Unit]
    Description=Trigger an automatic renewal every month
    
    [Timer]
    OnCalendar=monthly
    Persistent=true
    
    [Install]
    WantedBy=multi-user.target

On recharge systemd

systemctl daemon-reload

on active le timer

systemctl enable letsencrypt-renewal.timer

on le démarre

systemctl start letsencrypt-renewal.timer

et le tour est joué

Attention la modification de la configuration apache n’est valable que pour apache > 2.4.8
Pour les versions antérieures, il faut utiliser

SSLCertificateFile /etc/letsencrypt/live/www.example.com/cert.pem 
SSLCertificateKeyFile /etc/letsencrypt/live/www.example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/www.example.com/chain.pem

 

Leave a Reply

Your email address will not be published. Required fields are marked *

23 + = thirty one