Dans cette article, je vais présenter la mise en place d’un serveur https sous Debian avec Apache et des certificats CACert.org
CACert.org est une autorité de certification gratuite et communautaire, elle permet de réaliser des tests de mise en place avant d’acheter un certificat (relativement cher) auprès d’une autorité reconnue comme Thawte ou verisign. En effet CACert.org n’est pas reconnue par défaut par les différents navigateurs du marché, il vous faudra donc ajouter cette autorité de certification à votre navigateur afin de ne pas avoir d’alerte de sécurité lors de l’ouverture du site en https
Je ne détaillerais pas dans cet article la mise en place d’un serveur Apache et la création d’un VirtualHost
Configuration initiale
Voici le vhost de départ :
<VirtualHost *:80> ServerName www.mondomaine.com ServerAdmin admin@mondomaine.com DocumentRoot /var/www <Directory /var/www> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> LogLevel debug ErrorLog /var/log/apache2/error.mondomaine.com.log CustomLog /var/log/apache2/access.mondomaine.com.log combined </VirtualHost>
Création des du compte CACert et des certificats SSL
Pour obtenir des certificats de la part de CACert.org il est nécessaire de créer un compte, pour cela, rendez-vous sur le site CACert.org et cliquer sur join,
et remplir le formulaire de création de compte. Une fois votre compte créer, authentifiez vous et cliquez sur Domains puis sur add et ajouter votre domaine.
Une fois le domaine créer il va falloir faire une demande de certificat pour votre domaine, pour cela, il faut cliquer sur le lien Server Certificates puis Add, là CACert vous demande de coller votre Certificate Signing Request, nous allons donc la créer :
[root]# cd /home/me [root]# openssl req -nodes -new -keyout private.key -out server.csr Generating a 1024 bit RSA private key ................++++++ ................................++++++ writing new private key to 'private.key' ----- 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]:MyCompany Organizational Unit Name (eg, section) []:WebSite Common Name (eg, YOUR name) []:www.mondomaine.com Email Address []:admin@mondomaine.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
La clé est générée dans le fichier private.key et la requête de certificat est créée dans le fichier : server.csr. Lors de la création il est nécessaire de donner quelques informations, la plus importante étant : Common Name (eg, YOUR name) car c’est là que vous devrez renseigner votre nom de domaine.
Editer le fichier server.csr et copier (tout) le contenu, pour le coller dans la zone prévue à cet effet sur la page CACert de création du certificat et valider le formulaire. CACert vous affiche alors votre certificat, il faut (tout) copier le certificat dans un fichier sur votre machine : www.mondomaine.com.crt.
Il reste donc maintenant à configurer le serveur apache
Configuration du SSL
Dans mon exemple, je ne vais pas conserver le site sur le port 80, mais vous pourriez tout-à-fait dupliquer le vhost pour le https, et alors votre site serait accessible à la fois en http et https.
Avant nous allons déplacer les fichiers private.key et www.mondomaine.com.crt dans le répertoire : /etc/apache2/ssl
Voici donc le vhost modififié :
<VirtualHost *:443> ServerName www.mondomaine.com ServerAdmin admin@mondomaine.com SSLEngine On SSLCipherSuite HIGH:MEDIUM SSLCertificateFile ssl/www.mondomaine.com.crt SSLCertificateKeyFile ssl/private.key DocumentRoot /var/www <Directory /var/www> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> LogLevel debug ErrorLog /var/log/apache2/error.mondomaine.com.log CustomLog /var/log/apache2/access.mondomaine.com.log combined </VirtualHost>
Redémarrer Apache, et connectez vous à votre site : https://www.mondomaine.com
Et oui, comme je le disais au début, CACert n’est pas une autorité de certification reconnue par les navigateurs, il est donc nécessaire d’installer le certificat racine dans votre navigateur. Je ne détaillerais pas cette procédure compte tenu du nombre de navigateur, mais voici un lien qui décris trés bien tout ça : http://wiki.cacert.org/FAQ/BrowserClients?action=show&redirect=BrowserClients
Encore un test sur votre domaine : https://www.mondomaine.com, et hop, plus d’alerte de sécurité …
Ressources …
Quelques ressources … :



[...] mon précédent article, j’ai décris comment mettre en place le HTTPS sous [...]
Dag nabbit good stuff you whppienrsappers!