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


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


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" )
  }
}


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"
}


Relancer le serveur web…
# invoke-rc.d lighttpd restart


…et à vous les accès sécurisés


CategoryLinux, CategorySecurite, CategoryWeb
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki