Gérer des certificats SSL signés par une autorité de certification
Contents
Startssl_logo.png
Software version | |
---|---|
Operating System | Debian 7 |
Website | StartSSL Website |
Last Update | 17/02/2015 |
Others | Nginx 1.2.1 Lighttpd 1.4.31 |
1 Introduction
Vous avez besoin pour votre société ou pour vos besoins personnels d'avoir du SSL sur votre site web. L'inconvénient c'est que si vous les générez vous même et vous les auto signez, la première fois que vous irez dessus, vous aurez un message d'avertissement.
Pour ne pas avoir ce message et un beau petit cadenas sur votre navigateur qui dit que vous êtes protégés, il faut payer à une autorité de certification un paquet de fric pour avoir un certificat SSL valide.
Seulement voilà il existe de gentilles sociétés qui gratuitement ou pour quelques dizaines d'euros vous offrent un certificat pour votre nom de domaine signé :-). C'est ce que nous allons voir ici avec StartCom.
2 Génération des certificats
Avant de commencer, créez votre compte et allez jusqu'à l'étape de la clef privée sur StartCom.
Ici, je vais présenter plusieurs serveurs :
- Lighttpd : Génération d'une clef en classe 1[1]
- Nginx : Génération d'une clef wildcard en classe 2[2]
Je vous laisse adapter à votre configuration si vous avez besoin d'inverser.
2.1 Lighttpd
Nous allons voir ici comment faire avec Lighttpd. Tout d'abord, créons l'essentiel :
cd /etc/lighttpd mkdir ssl cd ssl |
Ensuite, nous allons générer la clef RSA privée et on sécurise le tout :
openssl |
openssl genrsa -out server.key 4096 chmod 400 server.key |
Copiez le contenu de cette clef dans le site afin qu'il vous génère la suite. Puis nous allons créer le CSR :
openssl |
openssl req -new -nodes -key server.key -out server.csr |
Pour la partie common name, entrez votre site par défaut (ex : www.deimos.fr).
Récupérez ensuite les certificats de StartCom :
wget |
wget http://www.startssl.com/certs/ca.pem wget http://www.startssl.com/certs/sub.class1.server.ca.crt wget http://www.startssl.com/certs/sub.class1.server.ca.pem |
2.2 Nginx
Nous allons voir ici comment faire avec Nginx. Tout d'abord, créons l'essentiel :
cd /etc/nginx mkdir ssl cd ssl |
Ensuite, nous allons générer la clef RSA privée et on sécurise le tout :
openssl |
openssl genrsa -out server.key 4096 chmod 400 server.key |
Copiez le contenu de cette clef dans le site afin qu'il vous génère la suite. Puis nous allons créer le CSR :
openssl |
openssl req -new -nodes -key server.key -out server.csr |
Pour la partie common name, entrez votre site par défaut (ex : www.deimos.fr).
Récupérez ensuite les certificats de StartCom :
wget |
wget http://www.startssl.com/certs/ca.pem wget http://www.startssl.com/certs/sub.class2.server.ca.crt wget http://www.startssl.com/certs/sub.class2.server.ca.pem |
2.3 Signature du certificat
Maintenant on va générer un certificat sur le site web StartSSL. Pour commencer, créez votre domaine avec le Validation Wizzard :
Choisissez Domain Name Validation :
Puis créez le domaine que vous souhaitez :
Finissez la création du domaine et cliquez sur Certificates Wizzard :
Ensuite sélectionnez la partie "Web Server SSL/TLS Certificate" car c'est ça qui nous intéresse :
Ensuite on skip cette partie car nous avons générer notre propre certificat
Et on colle le contenu du fichier server.csr dans la zone de texte :
Finissez, puis créer un fichier server.crt avec le contenu qui nous sera donné comme certificat SSL.
3 Configuration
3.1 Lighttpd
Ensuite, nous créons un certificat pem depuis ceux que nous avons générer ainsi qu'un crt :
cp |
cat server.key server.crt > server.pem cat ca.pem sub.class1.server.ca.pem > ca-certs.crt |
Ensuite nous allons configurer notre serveur lighttpd afin qu'il prenne nos nouvelles clefs :
N'oubliez pas de redémarrer votre serveur Lighttpd pour que les paramètres soient pris en compte :-)
3.2 Nginx
Pour Nginx, c'est un peu différent de Lighttpd. Nous allons créer le certificat unifié comme ceci :
cat |
cat ssl.crt sub.class2.server.ca.pem ca.pem > /etc/nginx/ssl/server-unified.crt |
/etc/nginx/sites-enabled/www.deimos.fr |
[...] ssl on; ssl_certificate /etc/nginx/ssl/server-unified.crt; ssl_certificate_key /etc/nginx/ssl/server.key; [...] |
Ensuite, redémarrez Nginx pour que les certificats fonctionnent.