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:47] – 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 98: | Ligne 108: | ||
</ | </ | ||
- | Pour que tous les sous-domaines servis par apache soient en mesure de servir les fichiers dans ce dossier on crée une configuration globale pour apache avec un Alias qui se charge de servir le bon dossier : | ||
- | <file apache / | + | 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 / |
- | ProxyPass / | + | < |
- | </ | + | ServerAdmin webmaster@federez.net |
- | < | + | ServerName hexagon.federez.net |
- | Alias / | + | |
- | </ | + | RewriteEngine On |
- | < | + | RewriteCond %{HTTPS} !=on |
- | | + | |
- | | + | # Pas de redirection pour les requêtes de Let's Encrypt |
- | Require all granted | + | RewriteCond %{REQUEST_URI} !^/ |
- | AddDefaultCharset off | + | |
- | </ | + | # 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 132: | 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 167: | 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 199: | Ligne 238: | ||
/ | / | ||
/ | / | ||
+ | # / | ||
+ | # / | ||
+ | # / | ||
fi | fi | ||
</ | </ | ||
Ligne 211: | 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 296: | 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