admin:services:letsencrypt
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteProchaine révisionLes deux révisions suivantes | ||
admin:services:letsencrypt [2016/05/14 22:30] – zertrin | admin:services:letsencrypt [2017/03/24 18:20] – [Configuration des services pour faire usage des certificats letsencrypt] Prosody lhark | ||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
Cette page décrit la mise en place des certificats signés par [[https:// | Cette page décrit la mise en place des certificats signés par [[https:// | ||
- | ===== Mise en place de Let's Encrypt sur un serveur | + | ===== Mise en place de Let's Encrypt sur les serveurs FedeRez |
- | ==== Avant-Propos | + | ==== Historique |
En janvier 2016, la méthode officiellement recommandée pour installer Let's Encrypt consistait à cloner le dépôt officiel de letsencrypt et d' | En janvier 2016, la méthode officiellement recommandée pour installer Let's Encrypt consistait à cloner le dépôt officiel de letsencrypt et d' | ||
- | En mai 2016, suite à la disponibilité de paquets officiels dans les Backports de Jessie, il a été décidé de migrer sur la version packagée et en même temps de passer du plugin d'auth //apache// au plugin d'auth // | + | En mai 2016, suite à la disponibilité de paquets officiels dans les Backports de Jessie |
+ | |||
+ | Fin juin 2016 le cronjob livré avec certbot a été désactivé via // | ||
+ | |||
+ | ==== Remarque sur le choix du client certbot ==== | ||
Il existe aussi d' | Il existe aussi d' | ||
Ligne 19: | Ligne 23: | ||
Pour le moment, chaque serveur est responsable de générer et faire signer les certificats pour les noms de domaines qu'il gère. | Pour le moment, chaque serveur est responsable de générer et faire signer les certificats pour les noms de domaines qu'il gère. | ||
- | * Le **paquet | + | * Le **paquet |
- | * Le **client automatique** officiel se trouve sous ''/ | + | |
* La configuration et les certificats sont dans ''/ | * La configuration et les certificats sont dans ''/ | ||
* Le **fichier de config** utilisé est à créer sous ''/ | * Le **fichier de config** utilisé est à créer sous ''/ | ||
- | * La gestion des certificats est faite automatiquement par le client. Voir la [[https:// | + | * La gestion des certificats |
* Au final la seule chose à retenir c'est que les **certificats valides** se situent sous ''/ | * Au final la seule chose à retenir c'est que les **certificats valides** se situent sous ''/ | ||
- | * Le **script de renouvellement automatique** adapté à FedeRez | + | * Le **script de renouvellement automatique** adapté à FedeRez |
- | * Un **script de monitoring des certificats SSL** pour vérifier la durée de validité restante et alerter si le certificat s' | + | * Le fichier crontab ce situe dans ''/ |
+ | * Un **script de monitoring des certificats SSL** est en place pour vérifier la durée de validité restante et alerter si le certificat s' | ||
<WRAP center round alert> | <WRAP center round alert> | ||
Ligne 49: | Ligne 53: | ||
</ | </ | ||
- | === Clonage | + | === Installation |
< | < | ||
- | apt-get install -t jessie-backports | + | apt-get install -t jessie-backports |
+ | </ | ||
+ | |||
+ | On désactive le cron bi-quotidien livré avec le paquet certbot avec '' | ||
+ | |||
+ | < | ||
+ | sudo dpkg-divert --add --rename --divert / | ||
</ | </ | ||
Ligne 92: | Ligne 102: | ||
Avec le plugin d'auth webroot, lors de l' | Avec le plugin d'auth webroot, lors de l' | ||
- | Pour que tous les sous-domaines servis par apache soient en mesure de servir ce fichier | + | Premièrement |
- | <file apache / | + | < |
- | < | + | mkdir -p / |
- | ProxyPass / | + | </ |
- | </ | + | |
- | < | + | |
- | Alias / | + | Pour éviter de définir pour chaque site un bloc de configuration pour HTTP afin de rediriger les navigateurs vers la version HTTPS de chaque site, on peut créer un fichier '''/ |
- | </ | + | <file apache / |
- | < | + | < |
- | | + | ServerAdmin webmaster@federez.net |
- | | + | ServerName hexagon.federez.net |
- | Require all granted | + | |
- | AddDefaultCharset off | + | RewriteEngine On |
- | </ | + | RewriteCond %{HTTPS} !=on |
+ | |||
+ | # Pas de redirection pour les requêtes de Let's Encrypt | ||
+ | RewriteCond %{REQUEST_URI} !^/ | ||
+ | |||
+ | # Redirection vers un domaine de federez.net | ||
+ | RewriteCond %{HTTP_HOST} ^([^.]+\.)? | ||
+ | RewriteRule ^.*$ https:// | ||
+ | |||
+ | | ||
+ | ProxyPass / | ||
+ | </ | ||
+ | |||
+ | | ||
+ | Alias / | ||
+ | </ | ||
+ | |||
+ | | ||
+ | AllowOverride None | ||
+ | Require all granted | ||
+ | # Utilité à confirmer : | ||
+ | # Options FollowSymLinks | ||
+ | # AddDefaultCharset off | ||
+ | </ | ||
+ | |||
+ | ErrorLog / | ||
+ | CustomLog / | ||
+ | LogLevel Warn | ||
+ | </ | ||
</ | </ | ||
- | On active la conf via '' | + | On s'assurera que le module |
+ | a2enmod rewrite | ||
+ | Ensuite, il faut activer la configuration du site qui gère HTTP avec : | ||
+ | a2ensite 000-no-tls | ||
- | Enfin, | + | Enfin, |
+ | service apache2 reload | ||
- | Solution | + | Astuce pour vérifier que tout est OK avant de tester avec Letsencrypt |
- | Méthode bourrin (mais fonctionnelle) : dans sites-available | + | |
+ | - Depuis une autre machine, utiliser le oneliner suivant pour tester l' | ||
< | < | ||
- | sed -i ' | + | for sub in quigon ldap-ro wiki-backup git; do echo $sub; curl http://$sub.federez.net/ |
</ | </ | ||
Ligne 126: | Ligne 169: | ||
<WRAP left round important> | <WRAP left round important> | ||
- | **Attention**, | + | **Attention**, |
+ | * il faut uniquement lister les domaines qui pointent réellement sur ce serveur dans la config DNS | ||
+ | * il faut penser à recharger/ | ||
</ | </ | ||
Ligne 161: | Ligne 206: | ||
# Il est cependant possible d' | # Il est cependant possible d' | ||
- | / | + | / |
-d quigon.federez.net \ | -d quigon.federez.net \ | ||
-d ldap-ro.federez.net \ | -d ldap-ro.federez.net \ | ||
-d wiki-backup.federez.net \ | -d wiki-backup.federez.net \ | ||
-d git.federez.net \ | -d git.federez.net \ | ||
- | -t | + | --text |
NEWHASH_CERT=$(sha1sum $FULLCHAINPATH | cut -d" " -f 1) | NEWHASH_CERT=$(sha1sum $FULLCHAINPATH | cut -d" " -f 1) | ||
Ligne 193: | Ligne 238: | ||
/ | / | ||
/ | / | ||
+ | # / | ||
+ | # / | ||
+ | # / | ||
fi | fi | ||
</ | </ | ||
Ligne 205: | Ligne 253: | ||
=== Mise en place dans le crontab === | === Mise en place dans le crontab === | ||
- | < | + | Créer le fichier '' |
- | Insérer la ligne suivante : | + | <file text / |
- | + | 14 9 * * * root / | |
- | <code>14 9 * * * / | + | </file> |
==== Configuration des services pour faire usage des certificats letsencrypt ==== | ==== Configuration des services pour faire usage des certificats letsencrypt ==== | ||
Ligne 290: | Ligne 338: | ||
TLSProtocol | TLSProtocol | ||
TLSRequired | TLSRequired | ||
+ | </ | ||
+ | |||
+ | === Prosody === | ||
+ | |||
+ | Dans ''/ | ||
+ | |||
+ | < | ||
+ | ssl = { | ||
+ | key = "/ | ||
+ | certificate = "/ | ||
+ | } | ||
</ | </ | ||
admin/services/letsencrypt.txt · Dernière modification : 2020/06/17 18:23 de zertrin