Difference between revisions of "https/fr"

From GeneWeb
Jump to: navigation, search
(Précautions: attribution)
(HTTPS pour GeneWeb en CGI derrière un serveur Apache)
 
(21 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{DISPLAYTITLE:Installer GeneWeb en mode https}}
+
{{DISPLAYTITLE:Configurer votre serveur GeneWeb en HTTPS}}
 
{{languages|https}}
 
{{languages|https}}
 +
{{toc right}}
 +
Il est possible 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.
  
Ce tutoriel décrit l'installation de GeneWeb en mode https. Il a été testé dans les environnements suivants :
+
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). A ce jour (01/2017) il n'est pas utilisable sur macOS.  
*un serveur Gnu/Linux ubuntuServer 16.04,
+
 
+
Il est valide pour Debian et ses dérivés,  
+
et peut nécessiter des adaptations pour les autres serveurs.
+
  
 
==Préalables==
 
==Préalables==
On présume que Geneweb est déjà installé et accessible soit sur votre serveur "Apache2", soit en mode service via le port 2317.
+
GeneWeb doit être installé qu'il soit configuré en [[CGI]] à travers Apache ou en mode service via le port 2317. {{c|domaine}} ou {{c|www.domaine}} indique le nom de domaine utilisé ou votre IP si n’y a pas de nom de domaine.
Nous utiliserons {{c|domaine}} ou {{c|www.domaine}} pour votre nom de domaine ou votre ip si vous n’avez pas de nom de domaine.
+
  
 
Exemple de votre adresse actuelle :
 
Exemple de votre adresse actuelle :
Line 16: Line 13:
 
ou
 
ou
 
  <nowiki>http://www.domaine.fr:2317/</nowiki>
 
  <nowiki>http://www.domaine.fr:2317/</nowiki>
 +
 
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.
 
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 {{c|sudo -s}} pour Ubuntu ou {{c|su root}} sous Debian… Puis votre mot de passe.
 
Les commandes doivent-être effectuées en mode administrateur '''root''' alors tapez {{c|sudo -s}} pour Ubuntu ou {{c|su root}} sous Debian… Puis votre mot de passe.
Line 23: Line 21:
  
 
==Installer les certificats Let’s Encrypt==
 
==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).
+
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
 
  apt-get install git
 
  git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt --depth=1
 
  git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt --depth=1
 
("--depth=1" indique "ne pas récupérer tout l'historique du site").
 
("--depth=1" indique "ne pas récupérer tout l'historique du site").
  
On génère les certificats :
+
Les certificats sont générés avec la commande :
 
  /opt/letsencrypt/letsencrypt-auto --apache -d domaine.fr -d www.domaine.fr
 
  /opt/letsencrypt/letsencrypt-auto --apache -d domaine.fr -d www.domaine.fr
Si vous avez plusieurs domaines, sinon vous pouvez faire simplement :
+
Vous pouvez aussi lancer simplement :
 
  /opt/letsencrypt/letsencrypt-auto
 
  /opt/letsencrypt/letsencrypt-auto
Vos certificats on été créés et se trouvent dans  {{c|/etc/letsencrypt/live/}}.
+
qui vous sollicitera pour les paramètres nécessaires.
 +
 
 +
Une fois créés, les certificats se trouvent dans  {{c|/etc/letsencrypt/live/}}.
 +
 
 +
=== Commentaire concernant les solutions hébergées ===
 +
 
 +
En cas d'hébergement, il convient de distinguer le nom de la machine sur laquelle votre service est hébergé du nom de domaine qui vous a été attribué dans le cadre de ce service. L'exemple qui suit est issu d'un hébergement chez OVH, mais doit avoir son équivalent chez d'autres hébergeurs.
 +
 
 +
Un site connu (et accessible) sur le Web à partir de l'adresse {{c|monsite.fr}} sera en fait hébergé sur une machine appelée {{c|vps123456.ovh.net}}.
 +
 
 +
Il n'est pas possible d'obtenir un certificat pour le serveur {{c|vps123456.ovh.net}} car vous n'êtes pas "propriétaire" du domaine {{c|ovh.net}}. Pour obtenir un certificat pour le serveur {{c|monsite.fr}}, il est nécessaire que les données associées à ce nom dans le serveur DNS soient correctes, et qu'en particulier l'adresse IP associée soit bien celle de la machine {{c|vps123456.ovh.net}}.
 +
 
 +
Il vous faudra donc obtenir cette adresse IP en exécutant :
 +
ping vps123456.ovh.net
 +
et renseigner cette adresse dans le champ A de l'enregistrement DNS du serveur {{c|monsite.fr}} (Web/Domaines/Zone DNS sur votre espace client OVH).
  
 
==Renouveler les certificats Let’s Encrypt==
 
==Renouveler les certificats Let’s Encrypt==
 
'''ATTENTION, le certificat n'est valable que 90 jours'''. On peut le renouveler avec la commande:
 
'''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
 
  /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 {{c|le-renew.sh}}
+
L’idéal est de rendre le renouvellement automatique, Erika Heidi a créé un script simplifiant la tâche, il s'agit de [http://do.co/le-renew {{c|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 {{c|crontab}} pour le renouvellement automatisé.
 
Dans les commandes qui suivent il s’agit de récupérer ce script, le rendre exécutable et le placer dans la {{c|crontab}} pour le renouvellement automatisé.
  
Line 47: Line 59:
 
Chaque lundi à 6:00, la validité du certificat en question sera vérifiée. S'il n'est plus valable, il sera renouvelé.
 
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 sur serveur Apache==
+
==HTTPS pour GeneWeb en CGI derrière un serveur Apache==
Configurer le VirtualHost pour l'accès https
+
Configurez VirtualHost pour l’accès HTTPS de votre serveur.
Allez dans /etc/apache2/sites-available et modifier les VirtualHost :
+
Dans {{c|/etc/apache2/sites-available}}, modifiez les VirtualHost :
 
  cd /etc/apache2/sites-available
 
  cd /etc/apache2/sites-available
 
  nano domainessl.fr  
 
  nano domainessl.fr  
La configuration que j'ai mise :
+
Exemple de configuration :
 
<pre>
 
<pre>
 
<VirtualHost *:443>
 
<VirtualHost *:443>
Line 58: Line 70:
 
       SSLProtocol -ALL -SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2
 
       SSLProtocol -ALL -SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2
 
       SSLHonorCipherOrder On
 
       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
+
# modification du 03/07/2017 --> désactiver le cipher 3DES qui n'est plus considéré comme sécurisé puis relancer apache
 +
#    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:RSA+AESGCM:RSA+AES:!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>
 
</pre>
 
</pre>
  
Configurer le VirtualHost http pour une redirection https :
+
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
 
  cd /etc/apache2/sites-available
 
  nano domaine.fr
 
  nano domaine.fr
La configuration que j'ai mise :
+
Un exemple de configuration :
 
<pre>
 
<pre>
 
<VirtualHost *:80>
 
<VirtualHost *:80>
Line 79: Line 93:
 
</pre>
 
</pre>
  
==Https pour Geneweb en mode service via le port 2317==
+
Dans ces deux fichiers de configuration, il convient éventuellement de préciser le nom du serveur « virtuel » ({{c|monsite.fr}}) hébergé.
Pour utiliser Geneweb en mode service en https il faut l’encapsuler, pour cela nous allons utiliser '''Stunnel4'''.
+
Ceci se fait en ajoutant les lignes :
Commençons par installer Stunnel4 :
+
      ServerName monsite.fr
 +
      ServerAlias www.monsite.fr
 +
 
 +
L’un des bénéfices de ce nommage est que votre nom de domaine continuera à apparaitre dans les URL affichées dans la barre de votre navigateur (meilleure visibilité, non-divulgation du nom spécifique du serveur hébergeur).
 +
 
 +
On trouvera sur le web de nombreux exemples de configuration de serveurs virtuels sous Apache. Choisissez celui qui vous convient ou qui correspond à votre environnement.
 +
 
 +
==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
 
  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 :
+
Créez un fichier de configuration dans lequel seront déclarés les certificats Let’s Encrypt précédemment créés.  
{{c|/usr/share/doc/stunnel4/examples/stunnel.conf-sample}}
+
 
Mais il faudra le modifier.
+
Un fichier de configuration type existe dans {{c|/usr/share/doc/stunnel4/examples/stunnel.conf-sample}} qu’il faut modifier :
 
  cd /etc/stunnel
 
  cd /etc/stunnel
 
  nano stunnel.conf
 
  nano stunnel.conf
Notre fichier de configuration :
+
Exemple de fichier de configuration de stunnel:
 
<pre>
 
<pre>
 
; **************************************************************************
 
; **************************************************************************
Line 111: Line 134:
 
; **************************************************************************
 
; **************************************************************************
 
; Enable support for the insecure SSLv3 protocol
 
; Enable support for the insecure SSLv3 protocol
options = -NO_SSLv3
+
options = NO_SSLv3
 
; These options provide additional security at some performance degradation
 
; These options provide additional security at some performance degradation
 
options = SINGLE_ECDH_USE
 
options = SINGLE_ECDH_USE
Line 129: Line 152:
 
</pre>
 
</pre>
  
Modifiez l'utilisateur et le groupe.
+
Dans le fichier de configuration ci-dessus, les paramètres suivants peuvent être modifiés :
 +
* foreground = yes : stunnel reste actif en foreground, et les messages de debug sont affiché dans la fenêtre.
 +
: Si vous commentez ce paramètre ({{c|;}}), stunnel s'exécutera en background.
 +
* debug = info. Les valeurs possibles du paramètre sont : emerg (0), alert (1), crit (2), err (3), warning (4), notice (5), info (6), or debug (7).
 +
: Selon le niveau, un nombre d'information plus ou moins important sera conservé dans le fichier log.
 +
 
 +
Modifiez l’utilisateur et le groupe :
 
  cd ..
 
  cd ..
 
  chown -Rf stunnel4:stunnel4 stunnel/
 
  chown -Rf stunnel4:stunnel4 stunnel/
Maintenant nous allons activer stunnel :
+
Activez stunnel en changeant la valeur de la variable {{c|ENABLED}} dans le fichier {{c|/etc/default/stunnel4}} de {{c|0}} à {{c|1}} :
 
  nano /etc/default/stunnel4
 
  nano /etc/default/stunnel4
Modifiez l’option suivante comme ci-dessous :
 
 
  ENABLED=1
 
  ENABLED=1
On redémarre Stunnel :
+
Redémarrez stunnel avec les commandes :
 
  /etc/init.d/stunnel4 stop
 
  /etc/init.d/stunnel4 stop
 
  /etc/init.d/stunnel4 start
 
  /etc/init.d/stunnel4 start
 
ou plus simplement :
 
ou plus simplement :
 
  /etc/init.d/stunnel4 restart
 
  /etc/init.d/stunnel4 restart
Vous pouvez dès maintenant vous connecter avec l’une des adresse similaire à celles ci-dessous, selon votre configuration :
+
Vous pouvez à present vous connecter avec l’une des adresses similaires à celles ci-dessous, selon votre configuration :
 
  <nowiki>https://www.domaine.fr:22317</nowiki>
 
  <nowiki>https://www.domaine.fr:22317</nowiki>
 
  <nowiki>https://domaine.fr:22317</nowiki>
 
  <nowiki>https://domaine.fr:22317</nowiki>
Line 153: Line 181:
 
  /sbin/iptables -A OUTPUT  -p tcp --sport 22317 -m state --state ESTABLISHED -j ACCEPT
 
  /sbin/iptables -A OUTPUT  -p tcp --sport 22317 -m state --state ESTABLISHED -j ACCEPT
  
==Attribution==
+
== 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]]

Latest revision as of 22:03, 3 July 2017

150px-Geographylogo svg.png Language: 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/.

Commentaire concernant les solutions hébergées

En cas d'hébergement, il convient de distinguer le nom de la machine sur laquelle votre service est hébergé du nom de domaine qui vous a été attribué dans le cadre de ce service. L'exemple qui suit est issu d'un hébergement chez OVH, mais doit avoir son équivalent chez d'autres hébergeurs.

Un site connu (et accessible) sur le Web à partir de l'adresse monsite.fr sera en fait hébergé sur une machine appelée vps123456.ovh.net.

Il n'est pas possible d'obtenir un certificat pour le serveur vps123456.ovh.net car vous n'êtes pas "propriétaire" du domaine ovh.net. Pour obtenir un certificat pour le serveur monsite.fr, il est nécessaire que les données associées à ce nom dans le serveur DNS soient correctes, et qu'en particulier l'adresse IP associée soit bien celle de la machine vps123456.ovh.net.

Il vous faudra donc obtenir cette adresse IP en exécutant :

ping vps123456.ovh.net

et renseigner cette adresse dans le champ A de l'enregistrement DNS du serveur monsite.fr (Web/Domaines/Zone DNS sur votre espace client OVH).

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 

Exemple de configuration :

<VirtualHost *:443>
   ...
      SSLProtocol -ALL -SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2
      SSLHonorCipherOrder On
# modification du 03/07/2017 --> désactiver le cipher 3DES qui n'est plus considéré comme sécurisé puis relancer apache
#     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:RSA+AESGCM:RSA+AES:!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>

Dans ces deux fichiers de configuration, il convient éventuellement de préciser le nom du serveur « virtuel » (monsite.fr) hébergé. Ceci se fait en ajoutant les lignes :

     ServerName monsite.fr
     ServerAlias www.monsite.fr

L’un des bénéfices de ce nommage est que votre nom de domaine continuera à apparaitre dans les URL affichées dans la barre de votre navigateur (meilleure visibilité, non-divulgation du nom spécifique du serveur hébergeur).

On trouvera sur le web de nombreux exemples de configuration de serveurs virtuels sous Apache. Choisissez celui qui vous convient ou qui correspond à votre environnement.

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 précédemment créés.

Un fichier de configuration type existe dans /usr/share/doc/stunnel4/examples/stunnel.conf-sample qu’il faut modifier :

cd /etc/stunnel
nano stunnel.conf

Exemple de fichier de configuration de stunnel:

; **************************************************************************
; * 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

Dans le fichier de configuration ci-dessus, les paramètres suivants peuvent être modifiés :

  • foreground = yes : stunnel reste actif en foreground, et les messages de debug sont affiché dans la fenêtre.
Si vous commentez ce paramètre (;), stunnel s'exécutera en background.
  • debug = info. Les valeurs possibles du paramètre sont : emerg (0), alert (1), crit (2), err (3), warning (4), notice (5), info (6), or debug (7).
Selon le niveau, un nombre d'information plus ou moins important sera conservé dans le fichier log.

Modifiez l’utilisateur et le groupe :

cd ..
chown -Rf stunnel4:stunnel4 stunnel/

Activez stunnel en changeant la valeur de la variable ENABLED 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 à present vous connecter avec l’une des adresses similaires à 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