4323
Commentaire:
|
4562
Le client letsencrypt s'appel maintenant certbot
|
Texte supprimé. | Texte ajouté. |
Ligne 32: | Ligne 32: |
* Lancer un run de bcfg2 (`sudo bcfg2 -I -q`) qui va ajouter les dépots `backports` où se trouve le binaire `letsencrypt` | * Lancer un run de bcfg2 (`sudo bcfg2 -I -q`) qui va ajouter les dépots `backports` où se trouve le binaire `certbot` qui est le client letsencrypt. |
Ligne 34: | Ligne 34: |
* Relancer un run de bcfg2 (`sudo bcfg2 -I -q`), il devrait normalement alors installer le paquet `letsencrypt`. | * Relancer un run de bcfg2 (`sudo bcfg2 -I -q`), il devrait normalement alors installer le paquet `certbot`. Le paquet n'est pas disponible sous wheezy pour les machines pas encore à jour. Il convient donc alors d'utiliser le script `/usr/scripts/src/letsencrypt/certbot-auto` en lieu et place de la commande `cerbot` dans ce qui suit. |
Ligne 40: | Ligne 40: |
* Lancer `sudo letsencrypt --config /etc/letsencrypt/conf.d/localhost.ini certonly` pour générer la clef privée et le certificat. Ils seront alors mis dans le dossier `/etc/letsencrypt/live/_nom_de_la_machine/`. | * Lancer `sudo certbot --config /etc/letsencrypt/conf.d/localhost.ini certonly` pour générer la clef privée et le certificat. Ils seront alors mis dans le dossier `/etc/letsencrypt/live/_nom_de_la_machine/`. |
Ligne 49: | Ligne 49: |
Normalement, lancer `sudo letsencrypt renew` devrait renouveler tous les certificats locaux expirant dans moins de 30 jours et uniquement ceux là. Il serait donc judicieux de placer la commande dans un cron weekly. Notez cependant que le rédacteur de ces lignes n'a pas testé la commande `letsencrypt renew`. La commande suivante peux également être envisagée comme renouvellement automatique : `sudo letsencrypt --keep-until-expiring --expand --non-interactive --config /etc/letsencrypt/conf.d/localhost.ini certonly` | Normalement, lancer `sudo ``certbot renew` devrait renouveler tous les certificats locaux expirant dans moins de 30 jours et uniquement ceux là. Il serait donc judicieux de placer la commande dans un cron weekly. Notez cependant que le rédacteur de ces lignes n'a pas testé la commande `certbot renew`. La commande suivante peux également être envisagée comme renouvellement automatique : `sudo ``certbot --keep-until-expiring --expand --non-interactive --config /etc/letsencrypt/conf.d/localhost.ini certonly` |
Uniquement https ?
Si vous chercher uniquement à passer un site web de http à https, merci de consulter la page CentralisationHttps
On va expliquer ici comment obtenir un certificat valide pour la plupart des logiciels pour autre chose que du https (imap, smtp, xmpp, …) où si vous ne pouvez pas faire pointer le nom à faire passer en https vers proxy.crans.org (par exemple pour gitlab.crans.org auquel on accède à la fois en https et en ssh).
L'autorité de certification (AC) reconnue actuellement utilisé par le Crans pour ses services publiques est Let's Encrypt. Pour ses services interne (essentiellement, tout ce qui est sur le vlan adm), le Crans utilise toujours CaCert.
Obtention d'un certificat
- Pour obtenir un certificat pour une machine, il faut comme pré-requis que cette machine soit accessible depuis internet sur le port 80. Il faut donc ouvrir le port entrant sur le pare-feu. Pour cela :
se connecter en ssh sur zamok.crans.org et lancer crans.
Choisisser Modifier une machine existante, trouver la machine avec une adresse ip publique (pour être accessible depuis internet il faut une ip publique).
Aller dans le menu Information et mettre le port 80 dans Port TCP ouvert vers l'extérieur.
Attendez un run de generate.py sur odlyd.crans.org oubien :
Se connecter en ssh sur odlyd.crans.org
Lancer sudo /usr/scripts/gestion/gen_confs/generate.py
Ensuite, ajoutez le groupe letsencrypt à la machine dans bcfg2.
Se connecter en ssh sur bcfg2.adm.crans.org
Aller dans /bcfg2/Metadata et éditez le fichier groups.xml
Chercher la définition du groupe de la machine et y ajouter le groupe letsencrypt, par exemple pour geet.crans.org:
<Group name="geet" profile="true"> […] <Group name="letsencrypt"/> </Group>
- Se connecter en ssh sur la machine et y effectuer les opérations suivantes :
Lancer un run de bcfg2 (sudo bcfg2 -I -q) qui va ajouter les dépots backports où se trouve le binaire certbot qui est le client letsencrypt.
Mettez a jour la liste des paquets: sudo apt-get update
Relancer un run de bcfg2 (sudo bcfg2 -I -q), il devrait normalement alors installer le paquet certbot. Le paquet n'est pas disponible sous wheezy pour les machines pas encore à jour. Il convient donc alors d'utiliser le script /usr/scripts/src/letsencrypt/certbot-auto en lieu et place de la commande cerbot dans ce qui suit.
Normalement, bcfg2 devrait avoir créer un fichier de configuration pour générer le certificat letsencrypt dans /etc/letsencrypt/conf.d/localhost.ini. Regardez le fichier pour voir s'il correspond bien au certificat que vous souhaitez générer (notemment le paramètre domains). Vous pouvez aussi vérifier le paramètre authenticator. Il devrait valoir webroot si nginx est installé sur la machine et stanalone sinon.
Si nginx est installé sur la machine, vous devez ajouter include "snippets/letsencrypt-webroot.conf"; à tous les sites activé dans /etc/nginx/sites-enabled.
Lancer sudo certbot --config /etc/letsencrypt/conf.d/localhost.ini certonly pour générer la clef privée et le certificat. Ils seront alors mis dans le dossier /etc/letsencrypt/live/_nom_de_la_machine/.
- Ce certificat est valide 90 jours. Il conviendra de le renouveller tous les 60 jours (lors qu'il restera strictement moins de 30 jours de validité)
Renouvellement d'un certificat
Manuellement
Appliquer exactement la même procédure que pour obtenir un certificat Normalement les deux premiers points (ouvrir le port 80 et mettre letsencrypt dans bcfg2) sont déjà fait.
Automatiquement
Normalement, lancer sudo certbot renew devrait renouveler tous les certificats locaux expirant dans moins de 30 jours et uniquement ceux là. Il serait donc judicieux de placer la commande dans un cron weekly. Notez cependant que le rédacteur de ces lignes n'a pas testé la commande certbot renew. La commande suivante peux également être envisagée comme renouvellement automatique : sudo certbot --keep-until-expiring --expand --non-interactive --config /etc/letsencrypt/conf.d/localhost.ini certonly