Lighttpd + Openssl
Pour paramétrer un accès SSL avec lighttpd sous debian Etch, se connecter avec root (avec “sudo” ou “su -”) et commencer par installer lighttpd et openssl:
# apt-get install lighttpd openssl
Vérifier que Lighttpd supporte bien le SSL:
# lighttpd -v
lighttpd-1.4.13 (ssl) - a light and fast webserver
Build-Date: Jul 22 2008 12:20:22
lighttpd-1.4.13 (ssl) - a light and fast webserver
Build-Date: Jul 22 2008 12:20:22
Si vous possédez pas encore de certificat, c’est le moment! commencer par générer la clé privée “ssl.key” dans “/etc/lighttpd/openssl”. Attention, ne perdez pas ce fichier et ne le publiez pas!
# mkdir -p /etc/lighttpd/openssl/ && cd !$ openssl genrsa -des3 -out ssl.key 1024
Puis la demande de certificat transitoire grâce à cette même clé:
# openssl req -new -key ssl.key -out ssl.csr
Cette demande de certificat doit être transmise à votre autorité de certification préférée (par exemple thawte) qui vous renverra un certificat en bon et du forme en échange de menue monnaie. Enregistrer ce fichier sous “/etc/lighttpd/openssl/ssl.crt”.
Enfin créer à partir de votre clé privée “ssl.key” et du certificat tout frais “ssl.crt” le fichier “ssl.pem” dont à besoin Lighttpd:
# cat ssl.key ssl.crt > ssl.pem
Protéger les fichiers en vérifiant les droits (en lecture seule pour lighttpd uniquement):
# chown -R www-data:www-data /etc/lighttpd/openssl
# chmod 0700 /etc/lighttpd/openssl
# chmod 0400 /etc/lighttpd/openssl/*
# chmod 0700 /etc/lighttpd/openssl
# chmod 0400 /etc/lighttpd/openssl/*
Transférer TOUS les accès sur le http (port 80) vers le https (port 443) en ajoutant/modifiant dans le fichier “/etc/lighttpd/lighttpd.conf”:
$SERVER["socket"] == ":80" {
$HTTP["host"] =~ "(.*)" {
url.redirect = ( "^/(.*)" => "https://%1/$1" )
}
}
$HTTP["host"] =~ "(.*)" {
url.redirect = ( "^/(.*)" => "https://%1/$1" )
}
}
Et y activer la prise en charge du protocole SSL en ajoutant/modifiant:
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/openssl/ssl.pem"
}
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/openssl/ssl.pem"
}
Relancer le serveur web…
# invoke-rc.d lighttpd restart
…et à vous les accès sécurisés
CategoryLinux, CategorySecurite, CategoryWeb