securiser

Lighttpd et ssl

Comment configurer lightty pour le https

lighttpd https, lighttpd https force, securiser lighttpd, lighty forcer 443

Date de publication : 2009-04-22 10:43:28

Aprés vous avoir expliqué comment créer un certificat ssl pour le https, je vais maintenant passer à la configuration de lighttpd en https.

Configuration préalable

Avant de commencer à bidouiller dans la conf lightty la première chose à faire et d'installer openssl avec la commande suivante :


root@home:~$ sudo aptitude install openssl

Seconde vérification de base : vérifier que lighttpd supporte le ssl :


root@home:~$ lighttpd -v
lighttpd-1.4.19 (ssl) - a light and fast webserver
Build-Date: Jul 29 2008 18:58:09

Dans mon cas c'est bon, si ce n'est pas le cas pour vous il va falloir recompiler lighttpd avec le support ssl.

Configuration du https pour lighttpd

Les vérifications précédentes effectuées et le certificat ssl généré il faut maintenant configurer le ssl.

Pour cela je crée un nouveau fichier de configuration avec vi :


root@home:~$ vi /etc/lighttpd/conf-available/90-ssl.conf

Maintenant deux choix possibles :

Activer le ssl pour tous les domaines

Pour activer le ssl pour tous les domaines hébergés sur la machine le contenu du fichier ssl.conf est le suivant :


$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/chemin/vers/certificat/server.pem"
}

Activer le ssl pour un seul domaine

Maintenant je vais vous expliquer comment configurer lighttpd pour activer le ssl uniquement sur un domaine (dans mon exemple ssl.petitchevalroux.net).

Première chose à faire : rediriger toutes les requêtes http vers la version https. Pour cela j'ajoute dans mon fichier ssl.conf la règle de redirection suivante :


# Redirection des requêtes non https pour les domaines https
$SERVER["socket"] == ":80" {
$HTTP["host"] == "ssl.petitchevalroux.net" {
url.redirect = ( ".*" => "https://ssl.petitchevalroux.net$0" )
}
}

Ensuite je configure le port https de lightty :


# Configuration du ssl
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/chemin/vers/certificat/ssl/server.pem"
# On met le document root à /dev/null par défaut pour que les domaines non ssl répondent en 404
server.document-root = "/dev/null"
# On surcharge le document root pour les domaines ayant le ssl activé
$HTTP["host"] == "ssl.petitchevalroux.net" {
server.document-root = "/chemin/vers/htdocs/"
}
}

Activation du ssl

Une fois que vous avez choisi la configuration du ssl qui vous correspond il ne reste plus qu'a suffit d'activer le fichier de configuration ssl.conf avec la commande :


root@home:~$ lighttpd-enable-mod ssl
Available modules: fastcgi
Already enabled modules: fastcgi
Enabling ssl: ok
Run /etc/init.d/lighttpd force-reload to enable changes

Et ensuite de recharger la configuration de lightty :


root@home:~$ /etc/init.d/lighttpd force-reload

Pour aller un peu plus loin je vous renvoie vers la doc du mod ssl de lightty

Image : tattoodj

 
 

b1n@sp1n