Utiliser le protocol ACME avec Let’s Encrypt et un nom DNS DuckDNS

Prérequis

Création d’un nom de sous domaine dans DuckDNS

duckDns3

CertBot pour certifier un nom de domaine

Dans la suite, on va utiliser CertBon pour certifier le nom de domaine pour notre site web Apache.

# 1. Connectez vous à la VM avec les identifiants définis à la création de cette VM.  
ssh -l login IP 

# 2. Installer Certbot (le client Let's Encrypt)  
sudo apt install certbot python3-certbot-apache -y

# 3. Certification Let's Encrypt
# Commencez par ouvrir un autre terminal et connectez-vous à la VM.
# Executez les commandes suivantes dans le premier qui se trouve à gauche dans la caputre d'ecran
export URL_SITE="vm-ecloud-im2ag"  
sudo certbot certonly --manual --preferred-challenges dns -d "$URL_SITE.duckdns.org"
# CertBot vous demandra une adresse mail et puis vous fournira un texte à copier dans une variable dans l'autre terminal.
# Executez les commandes suivantes dans le second terminal:

export URL_SITE="vm-ecloud-im2ag"  
export TOKEN='Votre token'
export TXT="le challenge généré dans le premier terminal"  
# Pour authentifier votre machine il suffit d'envoyer une requete HTTP à l'API de DuckDNS.
curl "https://www.duckdns.org/update?domains=$URL_SITE&token=$TOKEN&txt=$TXT"
# Il faut voir un OK
# Finalisez l'execution dans le premier terminal en tappant Entrée.

link_lets_duck

# 4. Modifier la config d'Apache pour y assicier les certificats créés.
sudo nano /etc/apache2/sites-available/default-ssl.conf  
# Supprimer les lignes:
SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile   /etc/ssl/private/ssl-cert-snakeoil.key

# Ajouter:
SSLCertificateFile /etc/letsencrypt/live/$URL_SITE.duckdns.org/fullchain.pem  
SSLCertificateKeyFile /etc/letsencrypt/live/$URL_SITE.duckdns.org/privkey.pem  

# Sauvegardez ce fichier et fermez-le.

# Activer le HTTPS:
sudo a2enmod ssl # activer le module Apache mod_ssl qui permet de gérer les connexions HTTPS (TLS/SSL).
sudo a2ensite default-ssl.conf # activer la configuration par défaut fournie par Apache pour HTTPS.
sudo systemctl reload apache2 # Recharger la config d'Apache

# A ce stade on peut vérifier que tout est bon en allant sur https://IP_VM

site_https

# 5. Mise en place d’un script d’authentification pour DuckDNS dans une tâche automatisée crontab.  
# Vous pouvez définir une tâche automatisée pour mettre à jour automatiquement votre IP et votre certificat.
# Connectez-vous à votre compte DuckDns et aller sur https://www.duckdns.org/install.jsp
# Choisissez votre nom de domaine et vous verrez apparaître les instructions qu'il faudra suivre.

Pour supprimer un déploiements, allez dans la page de vos déploiements.
Cliquez sur les trois points verticaux et puis choissiez Delete et puis Submit
Suppression Déploiement