Difference between revisions of "https/fr"
(Letsencrypt non supporté sur macOS.) |
m (→HTTPS pour GeneWeb en CGI derrière un serveur Apache) |
||
Line 60: | Line 60: | ||
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS | SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS | ||
SSLEngine on | SSLEngine on | ||
− | SSLCertificateFile /etc/letsencrypt/live/domaine.fr /fullchain.pem | + | SSLCertificateFile /etc/letsencrypt/live/domaine.fr/fullchain.pem |
− | SSLCertificateKeyFile /etc/letsencrypt/live/domaine.fr /privkey.pem | + | SSLCertificateKeyFile /etc/letsencrypt/live/domaine.fr/privkey.pem |
... | ... | ||
</VirtualHost> | </VirtualHost> |
Revision as of 14:00, 24 January 2017
![]() |
English • français |
---|
Il est possible d'accéder à votre serveur GeneWeb (gwd) en HTTPS en configurant Apache de manière adéquate pour le mode CGI ou en ajoutant l’outil stunnel pour le mode service.
Le tutoriel suivant a été testé sur un serveur GNU/Linux Ubuntu Server Edition Xenial Xerus 16.04 en janvier 2017. Il est valide pour Debian et ses dérivés, mais peut nécessiter des adaptations pour les autres systèmes d’exploitation (merci de renseigner les différences que vous observez et compléter l’article en conséquence). A ce jour (01/2017) il n'est pas utilisable sur macOS.
Préalables
GeneWeb doit être installé qu'il soit configuré en CGI à travers Apache ou en mode service via le port 2317. domaine
ou www.domaine
indique le nom de domaine utilisé ou votre IP si n’y a pas de nom de domaine.
Exemple de votre adresse actuelle :
http://www.domaine.fr/cgi-bin/geneweb.cgi
ou
http://www.domaine.fr:2317/
Ouvrez un terminal. Dans le tutoriel on utilisera nano comme éditeur de texte en ligne de commande, vous pouvez utiliser vi ou autres selon vos habitudes.
Les commandes doivent-être effectuées en mode administrateur root alors tapez sudo -s
pour Ubuntu ou su root
sous Debian… Puis votre mot de passe.
Attention, vous resterez en mode administrateur tant que vous n’aurez pas tapé exit
.
Vous pouvez aussi préfixer toutes les commandes ci-dessous avec sudo
. La première fois, votre mot de passe vous sera demandé. Il ne vous sera redemandé si vous cessez d'exécuter des commandes sudo
pendant un certain temps.
sudo chmod +x /usr/local/sbin/le-renew
Installer les certificats Let’s Encrypt
Pour récupérer les certificats, il faut commencer par installer git puis télécharger letsencrypt (vous êtes déjà en mode administrateur).
apt-get install git git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt --depth=1
("--depth=1" indique "ne pas récupérer tout l'historique du site").
Les certificats sont générés avec la commande :
/opt/letsencrypt/letsencrypt-auto --apache -d domaine.fr -d www.domaine.fr
Vous pouvez aussi lancer simplement :
/opt/letsencrypt/letsencrypt-auto
qui vous sollicitera pour les paramètres nécessaires.
Une fois créés, les certificats se trouvent dans /etc/letsencrypt/live/
.
Renouveler les certificats Let’s Encrypt
ATTENTION, le certificat n'est valable que 90 jours. On peut le renouveler avec la commande:
/opt/letsencrypt/letsencrypt-auto --apache --renew-by-default -d domaine.fr -d www.domaine.fr
L’idéal est de rendre le renouvellement automatique, Erika Heidi a créé un script simplifiant la tâche, il s'agit de le-renew.sh
Dans les commandes qui suivent il s’agit de récupérer ce script, le rendre exécutable et le placer dans la crontab
pour le renouvellement automatisé.
curl -L -o /usr/local/sbin/le-renew http://do.co/le-renew chmod +x /usr/local/sbin/le-renew crontab -e 0 6 * * 1 /usr/local/sbin/le-renew domaine.fr >> /var/log/le-renew.log
Chaque lundi à 6:00, la validité du certificat en question sera vérifiée. S'il n'est plus valable, il sera renouvelé.
HTTPS pour GeneWeb en CGI derrière un serveur Apache
Configurez VirtualHost pour l'accès https de votre serveur. Dans /etc/apache2/sites-available, modifiez les VirtualHost :
cd /etc/apache2/sites-available nano domainessl.fr
La configuration que j'ai mise :
<VirtualHost *:443> ... SSLProtocol -ALL -SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2 SSLHonorCipherOrder On SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS SSLEngine on SSLCertificateFile /etc/letsencrypt/live/domaine.fr/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/domaine.fr/privkey.pem ... </VirtualHost>
Si vous souhaitez que les accès classiques http soient automatiquement redirigés en mode https, configurez le VirtualHost HTTP pour cette redirection :
cd /etc/apache2/sites-available nano domaine.fr
Un exemple de configuration :
<VirtualHost *:80> ... RewriteEngine on RewriteRule ^ https://domaine.fr%{REQUEST_URI} [L,QSA,R=permanent] ... </VirtualHost>
HTTPS pour GeneWeb en mode service via le port 2317
Pour utiliser Geneweb en mode service en HTTPS il faut l’encapsuler en utilisant Stunnel4. Stunnel4 s'installe avec la commande :
apt-get install stunnel4
Créez un fichier de configuration dans lequel seront déclarés les certificats Let’s Encrypt créés à l'étape 2.
Un fichier de configuration type existe dans :
/usr/share/doc/stunnel4/examples/stunnel.conf-sample
Mais il faudra le modifier.
cd /etc/stunnel nano stunnel.conf
Un exemple de fichier de configuration :
; ************************************************************************** ; * Options générales * ; ************************************************************************** ; Il est recommandé de changer les privilèges utilisateur et groupe ;setuid = stunnel4 ;setgid = stunnel4 ; un chroot pour un peu plus de sécurité ;chroot = /var/lib/stunnel4/ ; Le fichier PID sera créé dans le chroot ;pid = /var/run/stunnel.pid ; Utile de mettre dans les logs pour suivre en cas de bug foreground = yes debug = info output = /var/log/stunnel4/stunnel.log ; Enable FIPS 140-2 mode if needed for compliance ;fips = yes ; ************************************************************************** ; * Service defaults may also be specified in individual service sections * ; ************************************************************************** ; Enable support for the insecure SSLv3 protocol options = -NO_SSLv3 ; These options provide additional security at some performance degradation options = SINGLE_ECDH_USE options = SINGLE_DH_USE ; ************************************************************************** ; * Include all configuration file fragments from the specified folder * ; ************************************************************************** ;include = /etc/stunnel/conf.d ; ************************************************************************** ; * Service definitions (remove all services for inetd mode) * ; ************************************************************************** [geneweb] accept = 22317 connect = 2317 cert=/etc/letsencrypt/live/domaine.fr/fullchain.pem key=/etc/letsencrypt/live/domaine.fr/privkey.pem
Modifiez l'utilisateur et le groupe.
cd .. chown -Rf stunnel4:stunnel4 stunnel/
Activez stunnel en changeant la valeur de la variable ENABLE
dans le fichier /etc/default/stunnel4
de 0
à 1
.
nano /etc/default/stunnel4 ENABLED=1
Redémarrez Stunnel avec les commandes:
/etc/init.d/stunnel4 stop /etc/init.d/stunnel4 start
ou plus simplement :
/etc/init.d/stunnel4 restart
Vous pouvez dès maintenant vous connecter avec l’une des adresse similaire à celles ci-dessous, selon votre configuration :
https://www.domaine.fr:22317 https://domaine.fr:22317 https://IP:22317
Précautions
Si vous utilisez un pare-feux comme IPTables ou un autre, adaptez-le. Si vous êtes auto-hébergé modifiez aussi la redirection de ports sur votre box. Exemple des règle pour IpTables :
/sbin/iptables -A INPUT -p tcp --dport 22317 -m state --state NEW,ESTABLISHED -j ACCEPT /sbin/iptables -A OUTPUT -p tcp --sport 22317 -m state --state ESTABLISHED -j ACCEPT
Sources
- Cette page est dérivée de HTTPS pour autres ports ou services ex Geneweb - stunnel4 par Sima78, utilisé sous CC-BY.