bg-tutorials

Comment installer un certificat SSL sur lighttpd

Dans ce tutoriel, vous apprendrez comment installer un certificat SSL sur Lighttpd. Le guide couvre la configuration actuelle (certificat et clé privée séparés avec le module mod_openssl), la méthode héritée du PEM combiné pour les anciennes versions, ainsi qu’un test rapide de configuration avant de redémarrer.

Nous avons également enregistré une vidéo qui vous guide à travers l’ensemble du processus. Si vous préférez la version texte, continuez votre lecture ci-dessous.

Générer un code CSR sur Lighttpd

Nous commencerons par la génération de la CSR (Certificate Signing Request). Une CSR est un bloc de texte encodé que vous envoyez à une autorité de certification pour demander un certificat SSL. Vous avez deux options :

Ouvrez le fichier CSR avec un éditeur de texte quelconque et copiez son contenu, y compris les lignes BEGIN CERTIFICATE REQUEST et END CERTIFICATE REQUEST, dans le champ correspondant lors du processus de commande du SSL. Soumettez la CSR à l’autorité de certification et attendez la validation. Une fois que la CA a émis votre certificat SSL, poursuivez avec l’installation ci-dessous.

Installer un certificat SSL sur Lighttpd

Étape 1 : Préparez vos fichiers de certificat

Après la validation, l’autorité de certification vous envoie les fichiers du certificat par e-mail. Téléchargez l’archive et extrayez-la. Vous devriez avoir :

  • yourdomain.crt, votre certificat SSL principal.
  • yourdomain.ca-bundle, les certificats intermédiaires (le CA bundle).
  • yourdomain.key, la clé privée que vous avez générée avec la CSR.

Lighttpd recommande que le fichier référencé par ssl.pemfile contienne la chaîne complète du certificat : votre certificat en premier, suivi des certificats intermédiaires. Créez ce fichier de chaîne combinée, puis déplacez-le ainsi que la clé privée dans un répertoire que Lighttpd peut lire (par exemple /etc/lighttpd/ssl/) :

cat yourdomain.crt yourdomain.ca-bundle > yourdomain.fullchain.pem
sudo mkdir -p /etc/lighttpd/ssl
sudo cp yourdomain.fullchain.pem yourdomain.key /etc/lighttpd/ssl/

Restreignez l’accès à la clé privée afin que seul root puisse la lire :

sudo chmod 600 /etc/lighttpd/ssl/yourdomain.key

Étape 2 : Activez mod_openssl

Depuis la version 1.4.56, le support TLS dans Lighttpd se trouve dans un module chargeable appelé mod_openssl (d’autres backends comme mod_mbedtls, mod_wolfssl, mod_gnutls et mod_nss existent également). Chargez-le dans votre fichier de configuration principal avant le bloc de socket SSL :

server.modules += ( "mod_openssl" )

Remarque : sur Lighttpd 1.4.55 et versions antérieures, le TLS était compilé directement plutôt que chargé comme module, donc vous pouvez ignorer cette ligne sur ces versions. Vérifiez votre version avec lighttpd -v.

Étape 3 : Modifiez lighttpd.conf

Ouvrez le fichier de configuration principal (le chemin est généralement /etc/lighttpd/lighttpd.conf) avec votre éditeur préféré :

sudo nano /etc/lighttpd/lighttpd.conf

Ajoutez un bloc de socket pour le port 443. Sur les versions actuelles de Lighttpd (1.4.56+), conservez la chaîne de certificat et la clé privée dans des fichiers séparés : faites pointer ssl.pemfile vers le fichier de chaîne complète et ssl.privkey vers la clé. C’est le format que la plupart des autorités de certification fournissent, et c’est la configuration recommandée par Lighttpd.

$SERVER["socket"] == ":443" {
    ssl.engine  = "enable"
    ssl.pemfile = "/etc/lighttpd/ssl/yourdomain.fullchain.pem"
    ssl.privkey = "/etc/lighttpd/ssl/yourdomain.key"

    # Version TLS minimale (ssl-conf-cmd nécessite lighttpd 1.4.48+ ; TLS 1.2 est déjà la valeur par défaut sur 1.4.56+)
    ssl.openssl.ssl-conf-cmd = ( "MinProtocol" => "TLSv1.2" )
}
  • ssl.engine active le TLS pour ce socket.
  • ssl.pemfile contient votre certificat suivi de la chaîne intermédiaire.
  • ssl.privkey contient la clé privée. Elle est requise depuis la version 1.4.53 chaque fois que la clé ne se trouve pas dans le pemfile.

Pour rediriger le trafic HTTP simple vers HTTPS afin que les visiteurs accèdent toujours à la version sécurisée, ajoutez une redirection pour le port 80 (cela nécessite mod_redirect, qui est chargé par défaut sur la plupart des distributions) :

$SERVER["socket"] == ":80" {
    url.redirect = ( "^/(.*)" => "https://yourdomain.com/$1" )
}

Enregistrez et fermez le fichier.

Méthode héritée : PEM combiné et ssl.ca-file

Les anciennes versions de Lighttpd 1.4.x (avant 1.4.53) utilisaient un seul PEM combiné contenant à la fois le certificat et la clé privée concatenés ensemble, avec la chaîne intermédiaire fournie séparément via ssl.ca-file. Si vous maintenez l’un de ces anciens systèmes, créez le fichier combiné comme suit :

cat yourdomain.crt yourdomain.key > /etc/lighttpd/ssl/yourdomain.pem

Puis référencez-le dans le bloc de socket :

$SERVER["socket"] == ":443" {
    ssl.engine  = "enable"
    ssl.pemfile = "/etc/lighttpd/ssl/yourdomain.pem"
    ssl.ca-file = "/etc/lighttpd/ssl/yourdomain.ca-bundle"
}

Sur les versions actuelles de Lighttpd, privilégiez la forme séparée ssl.pemfile et ssl.privkey de l’Étape 3 et conservez la chaîne complète dans le pemfile. La directive ssl.ca-file a été renommée ssl.verifyclient.ca-file dans la version 1.4.60, car son véritable objectif est de vérifier les certificats clients plutôt que de servir la chaîne du serveur.

Étape 4 : Testez la configuration

Vérifiez toujours la syntaxe avant de redémarrer, car une erreur peut empêcher le serveur de démarrer. Exécutez :

sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf

Vous devriez voir un message indiquant que la syntaxe est correcte (OK). Pour une vérification plus approfondie qui charge et initialise également les modules, utilisez sudo lighttpd -tt -f /etc/lighttpd/lighttpd.conf. Corrigez toute erreur signalée avant de continuer.

Étape 5 : Redémarrez Lighttpd

Appliquez les modifications. Sur un système moderne avec systemd, redémarrez le service :

sudo systemctl restart lighttpd

Sur les systèmes plus anciens utilisant SysV init, utilisez plutôt le script d’initialisation :

sudo /etc/init.d/lighttpd restart

Félicitations, votre certificat SSL est désormais installé sur Lighttpd. Pour confirmer le résultat et obtenir un rapport de statut instantané, utilisez notre SSL Checker ou explorez notre gamme complète d’outils SSL. Pour des options avancées, consultez la documentation officielle SSL de Lighttpd.

Questions fréquemment posées

Lighttpd utilise-t-il un fichier PEM combiné ou des fichiers séparés pour le certificat et la clé ?

Les versions actuelles de Lighttpd (1.4.56 et ultérieures) recommandent des fichiers séparés : le certificat plus sa chaîne intermédiaire dans le fichier nommé par ssl.pemfile, et la clé privée dans ssl.privkey. L’ancien PEM combiné qui concatène le certificat et la clé dans un seul ssl.pemfile fonctionne toujours, mais la forme séparée correspond à la manière dont la plupart des autorités de certification fournissent les fichiers et constitue la recommandation documentée.

Ai-je toujours besoin de ssl.ca-file pour la chaîne intermédiaire ?

Non. La recommandation actuelle consiste à inclure les certificats intermédiaires directement dans le fichier ssl.pemfile, juste après votre certificat. La directive ssl.ca-file était une méthode historique pour compléter la chaîne lorsque le pemfile ne contenait que le certificat final, et dans la version 1.4.60 elle a été renommée ssl.verifyclient.ca-file car son véritable rôle est la vérification des certificats clients.

Comment vérifier la configuration avant de redémarrer Lighttpd ?

Exécutez sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf pour tester la syntaxe, ou sudo lighttpd -tt -f /etc/lighttpd/lighttpd.conf pour un test plus approfondi qui charge également les modules. Corrigez toute erreur signalée avant de redémarrer, afin qu’une simple faute de frappe n’empêche pas le serveur de démarrer.

Pourquoi mon navigateur affiche-t-il une chaîne de certificats incomplète sur Lighttpd ?

Cela signifie généralement que les certificats intermédiaires manquent dans votre ssl.pemfile. Concatenez votre certificat et le CA bundle dans un seul fichier, avec le certificat en premier, et faites pointer ssl.pemfile vers celui-ci. Testez ensuite la configuration et redémarrez. Vous pouvez confirmer que la chaîne est complète avec notre SSL Checker.

Comment vérifier que le certificat SSL est installé sur Lighttpd ?

Connectez-vous à votre site avec OpenSSL et lisez le certificat qu’il fournit :
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
Si le certificat est installé, cette commande affiche son émetteur et ses dates de validité. Vous pouvez également ouvrir votre site dans un navigateur et vérifier le cadenas.

Economisez 10% sur les certificats SSL en commandant aujourd’hui!

Émission rapide, cryptage puissant, confiance de 99,99 % du navigateur, assistance dédiée et garantie de remboursement de 25 jours. Code de coupon: SAVE10

Image détaillée d'un dragon en vol
Rédigé par

Rédacteur de contenu expérimenté spécialisé dans les certificats SSL. Transformer des sujets complexes liés à la cybersécurité en un contenu clair et attrayant. Contribuer à l'amélioration de la sécurité numérique par des récits percutants.