Ce document détaille la configuration de stunnel et la création des certificats SSL sur zamok

 

Plusieurs services de la machine Zamok.crans.org disposent d'une connexion sécurisée assurée par l'utilisation du programme stunnel, lequel se base sur openssl.

 

1. Création des certificats SSL

Les services qui ont besoin d'un certificat SSL sur zamok sont :

service
adresse associée
port non sécurisé
port sécurisé
inn news.crans.org 119 563
serveur POP3 ptt.crans.org 110 995
serveur IMAP ptt.crans.org 143 993
serveur SMTP ptt.crans.org 25 465
serveur apache www.crans.org 80 443

La commande openssl qui permet de générer les certificats que nous utilisons est la suivante (exemple donné pour ptt.crans.org).

openssl req -config /etc/ssl/pttt-crans-org.cnf -new -x509 -nodes \
    -out /etc/ssl/certs/stunnel-ptt.pem \
    -keyout /etc/ssl/certs/stunnel-ptt.pem -days 1095
 

Pour chaque certificat, on lit donc le fichier de configuration qui se trouve dans /etc/ssl/ et qui rassemble les infos nécessaires pour fabriquer le certificat :

countryName_default = FR 
stateOrProvinceName_default = Ile-de-France
localityName_default = Cachan
organizationName_default = CRANS
organizationalUnitName_default = CRANS
commonName_default = ptt.crans.org
emailAddress_default = nounous@crans.org

À partir de là, on a toutes les infos pour créer le certificat, la clé publique et la clé privée. On spécifie qu'on le veut le certificat dans le format X509 (-x509 -out /etc/ssl/certs/stunnel-ptt.pem) ; c'est cette partie qui devra être exportable pour que les clients puissent l'importer. On spécifie également que sa durée de validité sera de 3 ans (-days 1095). Et enfin, on génère une clé privée que l'on place dans le même fichier que le certificat (-keyout /etc/ssl/certs/stunnel-ptt.pem).

Il existe un script qui vérifie si chaque certificat existe déjà et qui, dans le cas contraire, en recrée un. C'est /usr/scripts/ssl-certificates. La procédure pour recréer un certificat est donc de le supprimer dans /etc/ssl/certs/, puis de supprimer le lien dans /etc/ssl/certs, et enfin de lancer /usr/scripts/ssl-certificates. Il faut noter que le script recrée également le certificat utilisé par apache.

 

2. Exportation des certificats SSL

La doc de stunnel contient plusieurs allusions sur le sujet. En particulier cette page précise que l'exportation doit se faire au format x509 dans un formulaire DER directement interprétable et importable par outlook. Alors que l'exportation au format pkcs12 est à proscrire puisqu'implicitement, on exportera également la clé privée. La commande est la suivante :

openssl x509 -in stunnel-ptt.pem -outform DER -out certif-ptt.der

Ensuite, il n'y a qu'à télécharger le certificat sur une machine windows et l'installer comme décrit ici. Il faut noter que dans le cas du certificat pour www.crans.org:443, apache se charge tout seul de faire l'exportation du certificat et le rend disponible pour le client qui se connecte pour la première fois. Il peut donc être installé aisément, sans avoir besoin de l'exporter et de l'installer manuellement.

 

3. Utilisation de stunnel

Une fois les certificats et les clés privées créés, il faut lancer stunnel en daemon autant de fois que l'on souhaite, en lui précisant à chaque fois les ports qu'il doit écouter (le non sécurisé, et celui qu'il doit sécuriser). Donc on lance autant de fois que nécessaire, pour chaque service :

stunnel -d 995 -r 110 tunnel-pop -p /etc/ssl/certs/stunnel-ptt.pem

où -d désigne le port à sécuriser, et -r le port d'origine.

Tous les tunnels sont lancé par le script /etc/init.d/stunnel, en utilisant start-stop-daemon.



top documents home dernière modif le 17.03.02 par Nico.
La configuration de stunnel
presentation
liens
informations
vie
annuaire
pages perso
webmail
ssh