Bienvenue sur ce site internet auto-hébergé. Il est conforme au règlement général européen sur la protection des données (RGPD). Aucun cookie de traçage, aucune bannière et aucune publicité ne sont présents. Son contenu est mis à disposition selon les termes de la licence Creative Commons BY-NC-SA. Toute utilisation à des fins commerciales est strictement interdite et toute reproduction ou partage, même partiel, doivent respecter ces termes. Pour en savoir plus...
Lorsque 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 d'Apache 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 :
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 à partir de la ligne de commandes:
openssl genrsa -out /etc/ssl/private/moncertificat.key 2048
Ensuite, 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.