SUPPORT

Un problème de certificat ? Besoin d'être dépanné rapidement ? Nos ingénieurs répondent à vos questions.

0 897 690 444 Service 0,80 €/min +prix appel
Menu
picture of tbs certificates
picture of tbs certificates
Les produits
Notre gamme
Partenaires
Support
Numéro vert
Focus


Gestion de certificats pour Lighthttpd

Génération de clé privée et de CSR

Vous pouvez suivre notre documentation de génération de clé privée et de CSR pour Openssl. Le répertoire de configuration de Lighthttpd est généralement /etc/lighthttpd/

Installation de certificat

Pour activer le SSL, vous devez ajouter les instructions suivantes, soit à votre configuration globale, soit à votre bloc socket, écoutant sur le port 443. La configuration des blocs socket est héritée de la configuration générale. Voici un exemple pour un bloc socket:
  $SERVER["socket"] == ":443" {
      ssl.engine                  = "enable"
      ssl.pemfile                 = "/etc/lighttpd/ssl/www.example.org.pem" 
      ssl.ca-file                 = "/etc/lighttpd/ssl/www.example.org-chain.pem"

      #Désactivation des protocoles obsolètes
      ssl.use-sslv2               = "disable" #Utile pour lighttpd < 1.4.21
      ssl.use-sslv3               = "disable" #Disponible à partir de lighttpd >= 1.4.29

      #Choix des ciphers
      ssl.honor-cipher-order      = "enable" #enabled by default
      ssl.cipher-list             = "!EDH:!RC4:!ADH:!DSS:HIGH:+AES128:+AES256-SHA256:+AES128-SHA256:+SHA:!3DES" 
  
      #Paramètres DH et ECDH (Disponibles à partir de lighttpd >= 1.4.29)
      ssl.dh-file                 = "/etc/lighttpd/ssl/dhparams.pem" #Nécessite de générer le fichier. Voir nos recommandations de sécurité
      ssl.ec-curve                = "secp384r1"


      #Security headers (HSTS, frames, et nosniff)
      setenv.add-response-header = (
        "Strict-Transport-Security" => "max-age=63072000; includeSubdomains; preload",
        "X-Frame-Options" => "DENY",
        "X-Content-Type-Options" => "nosniff"
      )
    }
Ce fichier .pem doit contenir votre clé privée et votre certificat votre certificat. Si vous avec des fichiers séparés, vous devez les concaténer, par exemple :
cat www.example.org.key www.example.org.crt > www.example.org.pem
Il est aussi préférable de restreindre l'accès à ce fichier uniquement à l'utilisateur lançant le serveur lighthttpd :
chmod 400 /etc/lighttpd/ssl/example.org.pem

SNI

Si vous avez plusieurs noms de site/domaine différentes, il vous faudra configurer l'usage de SNI pour utiliser les bons certificats sur chaque site:
  $SERVER["socket"] == ":443" {
      ssl.pemfile = "/etc/lighttpd/ssl/the-default-domain.com.pem"

      $HTTP["host"] == "www.example.org" {
          ssl.pemfile = "/etc/lighttpd/www.example.org.pem"
      }

      $HTTP["host"] == "mail.example.org" {
          ssl.pemfile = "/etc/lighttpd/mail.example.org.pem"
      }
  }

Recommandations de sécurité

Paramètres Diffie-Hellman forts

Ces options ne sont disponibles que pour lighttpd >= 1.4.29. Nous vous recommandons de générer des groupes dh forts et uniques à votre machine afin d'accroitre sa sécurité. Pour cela, lancez la ligne de commande suivante et placez son résultat dans un dossier accessible par le serveur web :
  openssl dhparam -out dhparams.pem 2048
Vous pouvez ensuite ajouter ce fichier à votre configuration ssl:
  ssl.dh-file                 = "/etc/lighttpd/ssl/dhparams.pem"
Nous vous recommandons également de choisir une courbe forte pour ECDH:
  ssl.ec-curve                = "secp384r1"

Désactiver la compression TLS

Par défaut, la compression TLS devrait être désactivée. Néanmoins, si elle avait été activée à la compilation, vous pouvez la désactiver a l'aide de la ligne suivante :
ssl.use-compression           = "disable"

Activer le HSTS

Le HTTP Strict Transport Security permet de faire en sorte que vos utilisateurs continuent à utiliser HTTPS une fois une connexion établie, pour cela, vous pouvez rajouter le header suivant :
  setenv.add-response-header = (
      "Strict-Transport-Security" => "max-age=63072000; includeSubdomains; preload"
  )
Nous vous conseillons les options suivantes pour additionnellement sécuriser vos frames et limiter le sniffing MIME :
setenv.add-response-header = (
    "Strict-Transport-Security" => "max-age=63072000; includeSubdomains; preload",
    "X-Frame-Options" => "DENY",
    "X-Content-Type-Options" => "nosniff"
)

Voir aussi