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/07/24 15:45] – [Remarque sur le choix du client certbot] zertrin | admin:services:letsencrypt [2017/10/06 22:25] – Shaka | ||
---|---|---|---|
Ligne 18: | Ligne 18: | ||
Après avoir pris en compte tout ceci, il fut décidé de s'en tenir //pour le moment// au client officiel, avec pour but de migrer vers une alternative plus adaptée une fois que la poussière sera retombée et qu'une meilleure alternative stable et viable se présentera. | Après avoir pris en compte tout ceci, il fut décidé de s'en tenir //pour le moment// au client officiel, avec pour but de migrer vers une alternative plus adaptée une fois que la poussière sera retombée et qu'une meilleure alternative stable et viable se présentera. | ||
+ | |||
+ | ==== Procédure d' | ||
+ | |||
+ | Le certbot a évolué depuis le début et il n'est plus nécessaire d' | ||
+ | |||
+ | On installera le certbot depuis les backports jessie ou les dépots stretch. | ||
+ | |||
+ | Il existe deux méthodes pour réaliser le challenge en HTTP : | ||
+ | | ||
+ | | ||
+ | |||
+ | Nous choisirons ici le deuxième méthode le plus souvent. | ||
+ | |||
+ | Pour un nginx la configuration à placer dans le vhost est la suivante : | ||
+ | |||
+ | '' | ||
+ | |||
+ | Il faut que le dossier existde (un coup de mkdir devrait suffire). Il doit appartenir à l' | ||
+ | |||
+ | Enfin, il faut mettre en place le cron de renouvellement des certificats s'il n'a pas été ajouté lors de l' | ||
+ | |||
+ | '' | ||
+ | |||
+ | On notera le renew hook qui permet de relancer les services si un nouveau certificat doit être pris en compte. | ||
+ | |||
+ | Tout est prêt pour générer le certificat :) | ||
+ | |||
+ | Il suffit de placer une commande du type : | ||
+ | |||
+ | '' | ||
+ | '' | ||
+ | |||
+ | La première fois on vous demandera de dire oui aux TOSS. Pour les test il faut apposer --dry-run. Il est obligatoire de faire des tests jusqu' | ||
+ | |||
+ | Si on veut étendre un certificat existant on peut placer un --extend et il faut mettre le même nom. | ||
+ | |||
+ | Pour avoir une idée de quels certificats sont existants un '' | ||
+ | |||
==== Vue d' | ==== Vue d' | ||
Ligne 108: | Ligne 146: | ||
</ | </ | ||
- | 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 ''' |
- | <IfModule mod_proxy.c> | + | <file apache |
- | ProxyPass | + | <VirtualHost *:80> |
- | </IfModule> | + | |
- | < | + | |
- | Alias /.well-known/acme-challenge / | + | |
- | </IfModule> | + | |
- | < | + | |
- | | + | |
- | AllowOverride None | + | |
- | Require all granted | + | |
- | AddDefaultCharset off | + | |
- | </ | + | |
- | </ | + | |
- | On active la conf via '' | + | RewriteEngine |
+ | 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:// | ||
- | Enfin, il faut s' | + | < |
+ | ProxyPass | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | Alias / | ||
+ | </ | ||
- | Solution : remplacer '' | + | < |
+ | AllowOverride None | ||
+ | Require all granted | ||
+ | # Utilité à confirmer : | ||
+ | # Options FollowSymLinks | ||
+ | # AddDefaultCharset off | ||
+ | </ | ||
- | Méthode bourrin (mais fonctionnelle) : dans sites-available un bon coup de sed fait passer la pilule | + | ErrorLog / |
+ | CustomLog / | ||
+ | LogLevel Warn | ||
+ | </ | ||
+ | </ | ||
- | < | + | On s' |
- | sed -i ' | + | a2enmod rewrite |
- | </ | + | Ensuite, il faut activer la configuration du site qui gère HTTP avec : |
+ | | ||
+ | |||
+ | Enfin, on peut supprimer tous les VHOST HTTP pour ne laisser que les blocs qui concernent HTTPS dans les fichiers de configuration d'Apache. Puis on recharge la configuration d' | ||
+ | | ||
Astuce pour vérifier que tout est OK avant de tester avec Letsencrypt : | Astuce pour vérifier que tout est OK avant de tester avec Letsencrypt : | ||
Ligne 188: | Ligne 244: | ||
# 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 220: | Ligne 276: | ||
/ | / | ||
/ | / | ||
+ | # / | ||
+ | # / | ||
+ | # / | ||
fi | fi | ||
</ | </ | ||
Ligne 317: | Ligne 376: | ||
TLSProtocol | TLSProtocol | ||
TLSRequired | TLSRequired | ||
+ | </ | ||
+ | |||
+ | === Prosody === | ||
+ | |||
+ | Dans ''/ | ||
+ | |||
+ | < | ||
+ | ssl = { | ||
+ | key = "/ | ||
+ | certificate = "/ | ||
+ | } | ||
</ | </ | ||
admin/services/letsencrypt.txt · Dernière modification : 2020/06/17 18:23 de zertrin