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