Ce tutoriel vous montre comment générer un CSR sur lighttpd à l’aide de la ligne de commande OpenSSL sur le même serveur qui exécute le serveur web lighttpd. Vous créerez deux fichiers en une seule commande : une nouvelle clé privée et le CSR (Certificate Signing Request) correspondant que vous soumettrez à votre autorité de certification.
Les étapes ci-dessous fonctionnent sur toutes les distributions Linux modernes qui incluent lighttpd (Debian, Ubuntu, RHEL, AlmaLinux, Rocky Linux, Fedora, openSUSE, Alpine), car chacune est fournie avec OpenSSL 1.1.1 ou OpenSSL 3.x. Les deux versions signent la requête avec SHA-256 par défaut, vous n’avez donc pas besoin d’ajouter un indicateur de hachage. La même commande fonctionne également sur FreeBSD et sur macOS avec lighttpd.
Étape 1 : Connectez-vous à votre serveur lighttpd
Ouvrez le Terminal sur macOS ou Linux, ou PowerShell ou Windows Terminal sous Windows, et connectez-vous au serveur via SSH. Remplacez le nom d’utilisateur et l’hôte par les vôtres :
ssh your-user@your-lighttpd-server
Générez le CSR sur le même serveur qui hébergera le certificat. La clé privée est créée à côté du CSR et doit rester sur ce serveur ; exécuter la commande sur votre ordinateur portable puis copier la clé ailleurs va à l’encontre du but recherché. Vous pouvez également effectuer ce travail dans un répertoire dédié que vous pourrez retrouver plus tard, par exemple :
sudo mkdir -p /etc/lighttpd/ssl
cd /etc/lighttpd/ssl
Étape 2 : Générez la clé privée et le CSR
Si vous avez déjà généré votre CSR avec un autre outil, passez directement à l’installation du certificat sur lighttpd.
Exécutez la commande OpenSSL suivante. Elle crée une clé RSA de 2048 bits et un CSR en une seule étape, avec le sujet et les Subject Alternative Names (SAN) fournis en ligne afin qu’OpenSSL ne s’arrête pas pour poser des questions :
openssl req -new -newkey rsa:2048 -nodes
-keyout yourdomain.key
-out yourdomain.csr
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=yourdomain.com"
-addext "subjectAltName=DNS:yourdomain.com,DNS:www.yourdomain.com"
Ce que fait chaque partie :
- -newkey rsa:2048 génère une nouvelle clé RSA de 2048 bits. 2048 bits est le minimum actuel pour les certificats publics ; vous pouvez utiliser rsa:4096 pour une clé plus grande, ou passer à ECDSA (voir ci-dessous).
- -nodes laisse la clé privée non chiffrée afin que lighttpd puisse la lire au démarrage sans invite de phrase de passe.
- -keyout et -out nomment les fichiers de la clé privée et du CSR.
- -subj fournit le sujet du certificat. Indiquez ici le nom réel de votre entreprise, votre état et votre ville, et non les valeurs d’exemple. CN (Common Name) est votre domaine principal.
- -addext « subjectAltName=… » répertorie tous les noms d’hôtes que le certificat doit couvrir. Les autorités de certification publiques valident par rapport à la liste SAN, incluez-y donc également le Common Name.
Remplacez yourdomain.com par votre domaine réel partout. Pour couvrir des noms d’hôtes supplémentaires, ajoutez-les à la liste SAN séparés par des virgules, par exemple DNS:api.yourdomain.com. Pour un certificat wildcard, incluez à la fois le wildcard et le domaine simple : DNS:*.yourdomain.com,DNS:yourdomain.com. N’utilisez que des caractères alphanumériques dans les champs du sujet, et utilisez le code pays officiel à deux lettres pour le champ C.
Si vous préférez une clé ECDSA (plus petite et plus rapide, avec P-256 largement pris en charge), générez la clé et le CSR comme ceci à la place :
openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -pkeyopt ec_param_enc:named_curve -nodes
-keyout yourdomain.key
-out yourdomain.csr
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=yourdomain.com"
-addext "subjectAltName=DNS:yourdomain.com,DNS:www.yourdomain.com"
lighttpd prend en charge à la fois les certificats RSA et ECDSA via mod_openssl, et vous pouvez servir les deux sur le même socket en indiquant deux paires de directives ssl.pemfile et ssl.privkey.
Si vous préférez répondre aux invites champ par champ, exécutez openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr sans -subj ni -addext. OpenSSL demandera chaque champ tour à tour. Lorsqu’il le fait :
- Country Name (C) : le code ISO à deux lettres de votre pays, par exemple US ou GB. Pour les certificats Business Validation ou Extended Validation, il doit s’agir du pays officiel d’enregistrement de votre organisation.
- State or Province Name (ST) : le nom complet, par exemple Tennessee. Ne l’abrégez pas.
- Locality Name (L) : la ville, par exemple Nashville.
- Organization Name (O) : le nom officiel enregistré de votre entreprise, par exemple Your Company LLC. Pour les certificats Domain Validation, vous pouvez saisir NA.
- Organizational Unit Name (OU) : ce champ est obsolète et ignoré par les autorités de certification publiques. Laissez-le vide en appuyant sur Entrée.
- Common Name (CN) : le nom de domaine complet (Fully Qualified Domain Name) pour lequel le certificat est destiné, par exemple www.yourdomain.com. Pour un wildcard, utilisez *.yourdomain.com.
- Email Address : facultatif et non utilisé par les autorités de certification publiques. Vous pouvez le laisser vide.
- A challenge password et An optional company name : ce sont tous deux des attributs obsolètes que les autorités de certification publiques ignorent. Laissez-les vides.
Sans l’indicateur -addext, le CSR résultant n’aura aucune entrée SAN. Les autorités de certification publiques valident par rapport à la liste SAN et rejetteront (ou remplaceront silencieusement) une requête qui n’en possède pas, la méthode recommandée est donc la commande en ligne combinant -subj et -addext présentée ci-dessus.
Étape 3 : Localisez vos fichiers
Listez le répertoire actuel pour confirmer que les deux fichiers ont été créés :
ls
Vous devriez voir deux nouveaux fichiers :
- yourdomain.key : votre clé privée. Conservez-la sur le serveur, sauvegardez-la de manière sécurisée, et ne l’envoyez jamais à personne, y compris à l’autorité de certification. Quiconque détient la clé peut usurper l’identité de votre site.
- yourdomain.csr : votre Certificate Signing Request. C’est le fichier que vous soumettez au fournisseur SSL.
Restreignez l’accès à la clé privée afin que seul le propriétaire du fichier puisse la lire :
chmod 600 yourdomain.key
Étape 4 : Vérifiez le CSR (facultatif mais recommandé)
Avant de le soumettre, vérifiez que le CSR contient le bon sujet et les bons SAN, et que sa signature est valide. Cette commande décode la requête localement avec OpenSSL :
openssl req -noout -text -verify -in yourdomain.csr
Vérifiez que la ligne Subject affiche vos informations, que X509v3 Subject Alternative Name répertorie tous les noms d’hôtes attendus, et que la vérification de la signature affiche verify OK. L’algorithme de signature doit indiquer sha256WithRSAEncryption (ou ecdsa-with-SHA256 pour une clé ECDSA). Si vous préférez ne pas utiliser la ligne de commande, collez le CSR dans notre décodeur de CSR en ligne pour lire les mêmes champs dans un navigateur.
Étape 5 : Soumettez votre CSR
Pour copier le CSR de votre commande, affichez son contenu :
cat yourdomain.csr
Vous verrez un bloc de texte comme celui-ci :
-----BEGIN CERTIFICATE REQUEST-----
MIICyzCCAbMCAQAwTDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQsw...
...(many more lines of base64 characters)...
-----END CERTIFICATE REQUEST-----
Copiez le bloc entier, y compris les lignes —–BEGIN CERTIFICATE REQUEST—– et —–END CERTIFICATE REQUEST—– (chaque marqueur possède cinq tirets de chaque côté). Ce bloc entier est votre CSR. Collez-le dans le formulaire de commande lors de votre achat, et conservez la clé privée correspondante en place sur le serveur.
Si vous préférez ne pas utiliser la ligne de commande, vous pouvez également créer la requête avec notre générateur de CSR en ligne. Notez qu’il génère la clé privée dans votre navigateur, alors sauvegardez cette clé vous-même et transférez-la sur le serveur.
Après que votre autorité de certification aura validé la requête, vous recevrez votre certificat. Selon le niveau de validation, cela prend quelques minutes pour la Domain Validation, ou jusqu’à plusieurs jours ouvrables pour la Business Validation et l’Extended Validation.
Étape 6 : Installez le certificat sur lighttpd
Une fois le certificat reçu, placez le certificat émis et sa chaîne intermédiaire sur le serveur aux côtés de la clé privée, puis pointez lighttpd vers ceux-ci dans votre bloc de socket TLS. Sur les versions actuelles de lighttpd, le support TLS se trouve dans mod_openssl, et le format recommandé (depuis que lighttpd 1.4.53 a introduit ssl.privkey) conserve le certificat plus la chaîne dans un fichier et la clé privée dans un fichier séparé :
server.modules += ( "mod_openssl" )
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/ssl/yourdomain.fullchain.pem"
ssl.privkey = "/etc/lighttpd/ssl/yourdomain.key"
}
Le fichier ssl.pemfile doit contenir votre certificat suivi des certificats intermédiaires (construisez-le avec cat yourdomain.crt yourdomain.ca-bundle > yourdomain.fullchain.pem). L’ancien format à fichier unique, qui concaténait le certificat et la clé privée dans un seul ssl.pemfile, fonctionne encore sur les anciennes versions, mais la forme à fichiers séparés correspond à la manière dont les autorités de certification livrent les fichiers et constitue la recommandation officielle. Testez la configuration avec sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf et redémarrez lighttpd pour appliquer le changement. Pour le flux de travail complet, consultez notre guide sur comment installer un certificat SSL sur lighttpd.
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


