Tous les utilisateurs chez csoft.net peuvent rendre leur domaines
accessibles via https://
gratuitement grâce a
Let's Encrypt.
Ce guide montre comment installer vous-même un certificat Let's Encrypt
sous votre compte Csoft. Si vous souhaitez que nous effectuions cette
installation pour vous, veuillez contacter tech@csoft.net
.
tech@csoft.net
si vous voulez que nous traitons toute
communication en provenance de LetsEncrypt.
Pour valider plus d'un domaine, il est nécessaire de créer
un simple Alias HTTP afin que « /.well-known/ » corresponde au même
répertoire pour tous vos domaines.
Vous pouvez configurer cet Alias depuis csoftadm
avec la commande:
$ mkdir $HOME/www/.well-known $ csoftadm csoftadm> web alias add /.well-known/ /www/.well-known/ csoftadm> web alias list
Un seul Alias est nécessaire car celui-ci s'appliquera à tous vos domaines.
Assurez-vous de copier le chemin ci-dessus exactement (en substituant
example.com
pour le premier domaine dans votre liste de domaines).
Toutes les barres obliques ("/"
) sont requises.
Important: Si un Alias créé ne fonctionne pas, assurez-vous que tous les composants du chemin d'accès sont de vrais répertoires et non des liens symboliques. Si l'un des composants du chemin d'accès se trouve être un lien symbolique («symlink»), alors l'alias ne fonctionnera pas.
Exécutez les commandes suivantes dans votre shell pour créer votre répertoire
~/ssl/
:
$ mkdir -m 700 ~/ssl $ cd ~/ssl $ mkdir etc logs db
Finalement, exécutez la commande certbot
pour envoyer la requête
de certificat:
$ certbot certonly --config-dir=$HOME/ssl/etc \ --logs-dir=$HOME/ssl/logs \ --work-dir=$HOME/ssl/db \ --webroot -w $HOME/www \ --cert-path $HOME/ssl/cert \ -d example.com \ -d www.example.com
Quand certbot
s'exécute initialement, l'utilitaire demande
interactivement l'adresse courriel de l'administrateur.
L'option -d
spécifiée plusieurs fois permet l'ajout de
multiples certificats.
Finalement on doit copier le certificat vers ~/ssl/cert,
et la clé privée vers ~/ssl/key:
$ cp $HOME/ssl/etc/live/example.com/fullchain.pem $HOME/ssl/cert $ cp $HOME/ssl/etc/live/example.com/privkey.pem $HOME/ssl/key $ chmod 600 $HOME/ssl/key
Utilisez le panneau de contrôle ou l'utilitaire csoftadm
pour activer le
service HTTPS avec l'option ssl
.
$ csoftadm csoftadm> conf set ssl yes
Cela peut prendre une minute avant que le serveur SSL démarre
(sinon, voir /var/log/users/YOURNAME
pour les messages d'erreurs).
Désormais https://example.com
et https://www.example.com
devrait être
accessibles.
Pour plus de commodité, nous vous recommandons de créer un nouveau
script sous ~/ssl/renew.sh
, avec le contenu:
#!/bin/sh # # Renew my SSL certificate with LetsEncrypt. # DOMAIN=example.com certbot certonly \ --config-dir=$HOME/ssl/etc \ --logs-dir=$HOME/ssl/logs \ --work-dir=$HOME/ssl/db \ --webroot -w $HOME/www \ --cert-path $HOME/ssl/cert \ -d $DOMAIN -d www.$DOMAIN \ -d extra-domain1.com -d www.extra-domain1.com \ -d extra-domain2.com -d www.extra-domain2.com \ -d extra-domain3.com -d www.extra-domain3.com \ if [ "$?" == "0" ]; then cp -v $HOME/ssl/etc/live/$DOMAIN/fullchain.pem $HOME/ssl/cert cp -v $HOME/ssl/etc/live/$DOMAIN/privkey.pem $HOME/ssl/key else echo "certbot failed" exit 1 fi
Vous pouvez ajouter une cron job pour renouveller le certificat
automatiquement une fois par mois. Toute erreur sera envoyée à
l'adresse MAILTO
(qui devrait être indiquée au début de votre
crontab).
$ crontab -e
Ou, si vous voulez utiliser un éditeur spécifique:
$ env EDITOR=nano crontab -e
Ajoutez les directives qui suivent:
MAILTO=admin@example.com # Renew my SSL certificate monthly. @monthly (cd $HOME/ssl && sh renew.sh)
Si vous utilisez l'option ssl-redirect
(« rediriger tout le trafic HTTP vers
HTTPS »), elle doit être désactivée avant d'exécuter certbot
car le processus
de vérification LetsEncrypt ne peut pas gérer les redirections.
$ csoftadm -c "conf set ssl-redirect no"; sleep 180 $ certbot certonly ... $ csoftadm -c "conf set ssl-redirect yes"
Votre commande crontab pour le renouvellement ressemblerait alors à:
# Renew certificates monthly @monthly csoftadm -c "conf set ssl-redirect no"; sleep 180; (cd $HOME/ssl && sh renew.sh); csoftadm -c "conf set ssl-redirect yes"
Lors de cette écriture, nous travaillons sur une solution plus simple au niveau du serveur web.