Prochaine révision
|
Révision précédente
|
letsencrypt [14/11/2015 00:55] viper61 créée |
letsencrypt [01/03/2016 17:36] viper61 renew |
===== 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. |
| |