Aller au contenu

cryptage

Créer son certificat auto-signé

Logo SSLLorsque l’on possède un serveur et que l’on veut sécuriser un minimum les données que l’on fait transiter vers certains services installés (exemple: un service de cloud privé comme Owncloud), il est intéressant de paramétrer le VirtualHost afin qu’il écoute sur le port 443 (protocole HTTPS) réservé au trafic Web dit “sécurisé ou crypté”. D’autre part, afin que ce cryptage puisse s’effectuer correctement, il est nécessaire d’utiliser ce que l’on appelle un certificat de sécurité (ou certificat numérique) pour que les navigateurs internets utilisés puissent identifier notre serveur et assurer l’encodage des données. Ces certificats sont normalement signés par une autorité de confiance (ou autorité de certification) qui atteste de leur fiabilité et ils sont généralement payants.

Dans notre cas, pour un usage privé et amateur dans le cadre d’un auto-hébergement, nous allons voir comment paramétrer le VirtualHost et générer un certificat gratuit communément appelé “certificat auto-signé”.

Premièrement, éditons notre fichier VirtualHost avec la commande suivante:

nano /etc/apache2/sites-enabled/votrenomdedomaine.fr.conf

Puis modifions-le de la manière suivante:

<VirtualHost *:443>
 DocumentRoot /www/votrenomdedomaine.fr
 ServerName www.votrenomdedomaine.fr
 

Rajoutons ensuite les directives concernant le certificat auto-signé

# Activation du cryptage SSL et déclaration du certificat et de la clé de cryptage
        SSLEngine On
        SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
        SSLCertificateFile /etc/ssl/certs/moncertificat.crt
        SSLCertificateKeyFile /etc/ssl/private/moncertificat.key

Voici maintenant le procédure pour générer le certificat:

On génère une clé privée de la manière suivante:

openssl genrsa -out /etc/ssl/private/moncertificat.key 2048

On demande un certificat à partir de cette clé privée:

openssl req -new -key /etc/ssl/private/moncertificat.key -out /etc/ssl/certs/moncertificat.csr

Puis on construit notre certificat auto-signé à partir des deux éléments précédents:

NB*: Durant cette phase, il faut répondre à différentes questions concernant votre situation (nom de domaine, pays, ville…)

openssl x509 -req -days 365 -in /etc/ssl/certs/moncertificat.csr -signkey /etc/ssl/private/moncertificat.key -out /etc/ssl/certs/moncertificat.crt

Et pour finir, on active le mode SSL  et on redémarre notre serveur Apache avec les commandes suivantes:

# Activation du mode SSL
a2enmod ssl
# Redémarrage du serveur Apache
/etc/init.d/apache2 restart

# ou autre commande de redémarrage du serveur Apache:
service apache2 restart

Et voilà, désormais, vous pouvez vous connecter à votre service hébergé sur l’adresse https://votrenomdedemaine.fr. La seule petite contrainte sera d’ajouter manuellement une exception de sécurité dans votre navigateur, car s’agissant d’un certificat auto-signé, les navigateurs internet ne connaissent pas cette autorité de confiance mais le cryptage, lui est bien réel.