|
Prochaine révision
|
Révision précédente
|
letsencrypt [14/11/2015 00:55] viper61 créée |
letsencrypt [18/09/2016 02:54] (Version actuelle) |
| ===== Installation ===== | ===== Installation ===== |
| Pour le moment, il n'existe pas de dépôts pour effectuer l'installation. Il faudra donc cloner depuis le dépôt Git : | Pour le moment, il n'existe pas de dépôts pour effectuer l'installation. Il faudra donc cloner depuis le dépôt Git : |
| git clone https://github.com/letsencrypt/letsencrypt | git clone https://github.com/letsencrypt/letsencrypt . |
| |
| ===== Utilisation ===== | ===== Utilisation ===== |
| ==== Obtenir un certificat ==== | ==== Obtenir un certificat ==== |
| L’obtention d'un certificat s'obtient simplement via la commande suivante : | L’obtention d'un certificat s'obtient simplement via la commande suivante : |
| ./letsencrypt-auto --agree-dev-preview --agree-tos --renew-by-default --rsa-key-size 4096 --server https://acme-v01.api.letsencrypt.org/directory certonly | ./letsencrypt-auto --agree-tos --renew-by-default --rsa-key-size 4096 --server https://acme-v01.api.letsencrypt.org/directory certonly -d Le.Domaine |
| |
| ''--agree-dev-preview'' permet d'indiquer que nous avons bien compris qu'il s'agit d'une version en cours de développement qui n'est pas faite pour être utiliser dans un environnement de production pour le moment ;\\ | |
| ''--agree-tos'' signifie que nous acceptons les conditions d'utilisation ;\\ | ''--agree-tos'' signifie que nous acceptons les conditions d'utilisation ;\\ |
| ''--renew-by-default'' permet d'activer le renouvellement du/des certificat(s) que l'on va obtenir ;\\ | ''--renew-by-default'' permet d'activer le renouvellement du/des certificat(s) que l'on va obtenir ;\\ |
| |
| Cependant, Let's Encrypt nécessite d'avoir le port 80 de disponible, ce qui n'est pas possible dans un environnement de production. Il existe cependant une solution : | Cependant, Let's Encrypt nécessite d'avoir le port 80 de disponible, ce qui n'est pas possible dans un environnement de production. Il existe cependant une solution : |
| ./letsencrypt-auto --agree-dev-preview --agree-tos --renew-by-default --rsa-key-size 4096 --standalone --standalone-supported-challenges http-01 --http-01-port 1337 --server https://acme-v01.api.letsencrypt.org/directory certonly | ./letsencrypt-auto --agree-tos --renew-by-default --rsa-key-size 4096 --server https://acme-v01.api.letsencrypt.org/directory certonly --webroot -w Dossier/Du/Site -d Le.Domaine |
| |
| Les ajouts de cette commande permet de lancer le service en //standalone// et de le faire écouter sur un port de notre choix, défini ici à **1337**. \\ | Les ajouts de cette commande permet de lancer Let's Encrypt avec le plugin **webroot**. Ce plugin indique qu'il existe déjà un serveur web sur notre machine et que nous souhaitons l'utiliser. Il prend un paramètre **-w** suivit du chemin vers la racine du site. \\ |
| Il faudra cependant faire en sorte que la communication contenant la réponse à la requête du service arrive jusqu'à ce dernier. Nous configurerons donc notre **nginx** comme suit (il s'agit d'une configuration minimale) : | |
| server { | |
| listen 80; | |
| listen [::]:80; | |
| | |
| server_name votre.domaine.a.certifie; | |
| | |
| location /.well-known/acme-challenge/ { | |
| proxy_set_header X-Real-IP $remote_addr; | |
| proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
| proxy_set_header Host $http_host; | |
| proxy_pass http://127.0.0.1:1337/.well-known/acme-challenge/; | |
| proxy_redirect off; | |
| } | |
| } | |
| |
| <note tip>Tel que, Let's Encrypt ouvrira une interface pour demander le(s) domaine(s)/sous-domaine(s) pour le(s)quel(s) on souhaite obtenir un certificat. on pourra utiliser le switch ''-d'' pour le préciser dans la commande directement. Chaque domaine/sous-domaine nécessite l'utilisation de ce switch.</note> | <note tip>Tel que, Let's Encrypt nous obtiendra un certificat pour le domaine indiquer avec le paramètre ''-d'' du site stocké dans le répertoire indiqué par le paramètre ''-w''. \\ |
| | On peut indiquer plusieurs domaine avec plusieurs paramètre ''-d''. Si le site se trouve dans un autre répertoire, il faudra précédé ''-d'' par ''-w Dossier/Du/Site''.</note> |
| |
| Une fois le certificat obtenu, nous pourrons utiliser le générateur de Mozilla pour obtenir une configuration pour son serveur Web : https://mozilla.github.io/server-side-tls/ssl-config-generator/ | Une fois le certificat obtenu, nous pourrons utiliser le générateur de Mozilla pour obtenir une configuration pour son serveur Web : https://mozilla.github.io/server-side-tls/ssl-config-generator/ |
| |
| Les certificats générés seront enregistrer dans le répertoire suivant : **/etc/letsencrypt/live/votre.domaine/** | Les certificats générés seront enregistrer dans le répertoire suivant : **/etc/letsencrypt/live/Le.Domaine/** |
| |
| ==== Renouveler le certificat ==== | ==== Renouveler le certificat ==== |
| | Pour effectuer le renouvellement de manière automatisé, nous utiliserons le paramètre ''renew''. Nous placerons la commande en tache cron est effectuons la vérification de manière hebdomadaire (ici tout les mardis à 14h et sauvegarderons la sortie de la commande vers un fichier créer pour l'occasion) : |
| | |
| | mkdir -p /var/log/letsencrypt |
| | touch /var/log/letsencrypt/renew.log |
| | crontab -e |
| | |
| | 0 14 * * 2 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/letsencrypt/renew.log |
| | |
| Malgré le renouvellement automatique, nous pouvons demander pour en obtenir un manuellement en utilisant les même valeurs que lorsque nous avons généré le certificat. | Malgré le renouvellement automatique, nous pouvons demander pour en obtenir un manuellement en utilisant les même valeurs que lorsque nous avons généré le certificat. |
| |