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é
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