Difference between revisions of "https/fr"

From GeneWeb
Jump to: navigation, search
Line 1: Line 1:
{{DISPLAYTITLE:Installer GeneWeb en mode https}}
+
{{DISPLAYTITLE:Configurer votre serveur GeneWeb en HTTPS}}
 
{{languages|https}}
 
{{languages|https}}
 
+
{{toc right}}
Le serveur [[gwd]] de GeneWeb peut être utilisable en [https://fr.wikipedia.org/wiki/HyperText_Transfer_Protocol_Secure HTTPS] en configurant Apache de manière adéquate pour le mode CGI ou en ajoutant l’outil [[https://en.wikipedia.org/wiki/Stunnel stunnel]] pour le mode service.
+
Il est possbile d'accéder à votre '''serveur GeneWeb ([[gwd]]) en [https://fr.wikipedia.org/wiki/HyperText_Transfer_Protocol_Secure HTTPS]''' en configurant Apache de manière adéquate pour le mode CGI ou en ajoutant l’outil [https://en.wikipedia.org/wiki/Stunnel stunnel] pour le mode service.
  
 
Le tutoriel suivant a été testé sur un serveur GNU/Linux [https://fr.wikipedia.org/wiki/Ubuntu 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).
 
Le tutoriel suivant a été testé sur un serveur GNU/Linux [https://fr.wikipedia.org/wiki/Ubuntu 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).
Line 152: Line 152:
  
 
== Sources ==
 
== Sources ==
Cette page est dérivée de ''[https://chispa.fr/sima78/index.php?post/2017/01/11/https-pour-autre-ports-ou-services-ex-Geneweb-stunnel4 HTTPS pour autres ports ou services ex Geneweb - stunnel4]'' par Sima78, utilisé sous CC-BY.
+
* Cette page est dérivée de ''[https://chispa.fr/sima78/index.php?post/2017/01/11/https-pour-autre-ports-ou-services-ex-Geneweb-stunnel4 HTTPS pour autres ports ou services ex Geneweb - stunnel4]'' par Sima78, utilisé sous CC-BY.
  
 
[[Category:Manuel]]
 
[[Category:Manuel]]

Revision as of 18:24, 23 January 2017

150px-Geographylogo svg.png Language: English • français

Il est possbile 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).

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 (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").

On génère les certificats :

/opt/letsencrypt/letsencrypt-auto --apache -d domaine.fr -d www.domaine.fr

Si vous avez plusieurs domaines, sinon vous pouvez faire simplement :

/opt/letsencrypt/letsencrypt-auto

Vos certificats on été créés et 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

Configurer le VirtualHost pour l'accès https Allez dans /etc/apache2/sites-available et modifier 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>

Configurer le VirtualHost HTTP pour une redirection HTTPS :

cd /etc/apache2/sites-available
nano domaine.fr

La configuration que j'ai mise :

<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, pour cela nous allons utiliser Stunnel4. Commençons par installer Stunnel4 :

apt-get install stunnel4

Nous allons créer un fichier de configuration dans lequel nous allons déclarer les certificats Let’s Encrypt que nous avons 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

Notre 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/

Maintenant nous allons activer stunnel :

nano /etc/default/stunnel4

Modifiez l’option suivante comme ci-dessous :

ENABLED=1

On redémarre Stunnel :

/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