27-11
Créer et Installer un certificat SSL sous Lighttpd
Installer un certificat SSL sous Lighttpd est une opération plutôt simple mais demande un peu de rigueur. Dans cet article, le certificat SSL sera un certificat valide, acheté sur NameCheap.com pour 10.95 U$D (7.50 uros au taux de change actuel).Achat du certificat SSL
Procédez au paiement puis vous recevrez rapidement un email vous informant de la marche à suivre (bien sûr ils ne vont parler que d'Apache). Rendez-vous sur la page d'activation de votre certificat SSL (Active Now) et activez votre certificat SSL.L'interface NameCheap vous demande alors de sélectionner le type de serveur Web que vous utilisez ainsi que d'entrer votre CSR. Nous allons donc passer à la génération du fichier CSR.
Génération du CSR
Rendez-vous dans le répertoire de configuration de Lighttpdcd /etc/lighttpd/ # Créez un dossier ssl mkdir /etc/lighttpd/ssl/ cd ssl/ # Générez un fichier Key. openssl genrsa -des3 -out admin-serv.net.key 1024 # Lorsque OpenSSL vous demande une passphrase, entrer # un mot de passe et notez le ! Generating RSA private key, 1024 bit long modulus .........++++++ ........++++++ e is 65537 (0x10001) Enter pass phrase for admin-serv.net.key: Verifying - Enter pass phrase for admin-serv.net.key: # Générez ensuite votre fichier CSR openssl req -new -key admin-serv.net.key -out admin-serv.net.csr # Entrez votre pass phrase Enter pass phrase for admin-serv.net.key: # Vous allez maintenant devoir fournir des informations claires et précises You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:FR State or Province Name (full name) [Some-State]:France Locality Name (eg, city) []:Paris Organization Name (eg, company) [Internet Widgits Pty Ltd]:Admin Serveur Organizational Unit Name (eg, section) []:Admin Serveur # Attention à cette étape car votre certificat va être # fait pour un seul et unique domaine Common Name (eg, YOUR name) []:admin-serv.net Email Address []:boris17480@gmail.com Please enter the following 'extra' attributes to be sent with your certificate request # Un mot de passe si vous le souhaitez A challenge password []: An optional company name []:Admin ServeurMaintenant que votre fichier CSR est créé, envoyez le à NameCheap
cat admin-serv.net.csr -----BEGIN CERTIFICATE REQUEST----- MIIB+zCCAWQCAQAwgZwxCzAJBgNVBAYTAkZSMQ8wDQYDVQQIEwZGcmFuY2UxDjAM BgNVBAcTBVBhcmlzMRYwFAYDVQQKEw1BZG1pbiBTZXJ2ZXVyMRYwFAYDVQQLEw1B ZG1pbiBTZXJ2ZXVyMRcwFQYDVQQDEw5hZG1pbi1zZXJ2Lm5ldDEjMCEGCSqGSIb3 DQEJARYUYm9yaXMxNzQ4MEBnbWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0A MIGJAoGBALTQV607z5/4K6jlvVjdzUPGXXmhA9K8/6GIHEEWuIXJmGI3s4DCcFAk jmCaWz77O+ZkJzdTLVTEO9nWqGIu8l/0Ucs/Uy5aPM9nCKDp6z/KzcJY7Nl/ZcL9 Kvy1/QM4HjQJFydu83gKDf2NhoYqBO1kR89NaQR83hWSBiXq1jMrAgMBAAGgHjAc BgkqhkiG9w0BCQIxDxMNQWRtaW4gU2VydmV1cjANBgkqhkiG9w0BAQUFAAOBgQAb 7fn3tshD6FBDCtKi+ssbKk0yhVlFVFQI+viKXxv+PARNJ1xl5HnQhjLJ8egrk5c0 7zXv5qbEAsncEVWkrZO1+2s/FDqELiGBYi5LCKk/hchkh6aUdlSbCRT32UJcEhle IzDC3CS0ZHaAoUu4HCrNTEcmQkvGC5OR6H56edlxnA== -----END CERTIFICATE REQUEST-----NameCheap vous demande ensuite de sélectionner une adresse email pour prouver que vous êtes bien l'owner du domaine. Indiquez celle qui correspond le mieux. Ces données étant trouvé en faisant un mix entre les records Whois et les adresses email normales (postmaster, etc..). Valider ensuite l'owner, NameCheap va tout d'abord tester la connexion puis vous envoyer un email pour valider votre adresse email. Création du certificat sur le site de GeoTrust: NameCheap vous a envoyé un email contenant un lien permettant d'activer votre certificat SSL. Cliquez sur ce lien d'activation. GeoTrust vous demande d'approuver les informations cités sur la page, puis votre certificat vous est envoyé par mail. Rendez-vous alors dans votre boite mail, et regardez en bas de la page, votre certificat SSL est là. Maintenant, vous n'avez plus à retourner sur ces sites.
Backup de vos certificats & clés
Afin d'éviter tout problème par la suite, nous allons effectuer un petit backup des clés et certificats que vous avez créé précédemment ainsi que du certificat SSL reçu.# Rendez-vous dans le répertoire de vos certificats SSL cd /etc/lighttpd/ssl/ # Créez un dossier "backup" mkdir /etc/lighttpd/ssl/backup/ # On créé le fichier contenant notre certificat SSL nano admin-serv.net.crt # Copiez tout dedans # Fermez nano # On copie tout dans le dossier backup cp admin-serv.* /etc/lighttpd/backup/ # On créé notre fichier d'encryption (pem) cat admin-serv.net.key admin-serv.net.crt > admin-serv.net.pemMaintenant que tout est presque prêt, on va pouvoir ajouter notre certificat SSL à un socket Lighttpd.
Installation du certificat SSL dans lighttpd
Rendez-vous dans lighttpd.confcd /etc/lighttpd/ nano lighttpd.conf # Et rajoutez les informations comme suit $SERVER["socket"] == "91.121.169.79:443" { ssl.engine = "enable" ssl.pemfile = "/etc/lighttpd/ssl/admin-serv.net.pem" ssl.ca-file = "/etc/lighttpd/ssl/admin-serv.net.crt" server.name = "admin-serv.net" # votre configuration habituelle pour ce domaine }Voilà l'installation est terminée, une petite vérification
lighttpd -f /etc/lighttpd/lighttpd.conf -t Syntax OK # Tout est OK, on redémarre /etc/init.d/lighttpd restart Stopping web server: lighttpd. # Lighttpd vous demande alors votre mot de passe Starting web server: lighttpdEnter PEM pass phrase: .
Suppression du mot de passe pour pouvoir redémarrer automatiquement votre serveur
# Attention à bien avoir fait vos backups openssl rsa -in /etc/lighttpd/ssl/admin-serv.net.key -out /etc/lighttpd/ssl/admin-serv.net.deprotected.key Enter pass phrase for /etc/lighttpd/ssl/admin-serv.net.key: writing RSA key # La clé est maintenant sans mot de passe # On mets à jour notre configuration Lighttpd cat admin-serv.net.deprotected.key admin-serv.net.crt > admin-serv.net.pem # On redémarre lighttpd /etc/init.d/lighttpd restart Stopping web server: lighttpd. Starting web server: lighttpd. # Le serveur a redémarré sans poser de question.Voilà, notre site est disponible en https. Vérifiez par vous-même : https://admin-serv.net/
Sécurisation
Notre certificat SSL fonctionne, mais celui-ci est accessible par tout le monde en lecture.cd /etc/lighttpd/ssl/ # On rends lighttpd owner du fichier chown www-data:www-data *.pem # On applique les bons droits de lecture chmod 0600 *.pem # On redémarre lighttpdVoilà, votre site est dispose maintenant d'un certificat SSL, l'opération ne vous aura prise pas plus de 10 minutes et coutée un peu moins de 10uros.
1 Commentaire pour ce billet.
Votre commentaire
Bonjour,
Merci pour le tuto, j'ai créer 2 ".csr" et 2 ".key", j'ai générer les 2 ".pem", mais je bloque sur la dernière partie, j'ai plusieurs domaines, donc j'ai utiliser le "Server Name Indication" SNI.
Dois je mettre les fichiers ".pem" dans une condition "host" pour chacun des noms de domaine?
Help please !