L'objectif est de configurer un site intranet (avec vhost) sur apache, en utilisant TLS.
TLS exige qu'un certificat soit délivré par une autorité de certification.
Puisqu'il s'agît d'un site intranet, accessible uniquement sur le réseau de l'entreprise, plutôt que de nous adresser à une autorité de certification sur internet, nous allons nous-même créer notre propre autorité de certification pour nous délivrer un certificat à nous-même !
Dans ce tutoriel (et en règle générale), nous employons le mot "SSL" alors qu'en réalité il s'agît de "TLS". "SSL" est l'ancien protocole inventé Netscape dans les années 90 (SSLv2, SSLv3). Il est obsolète aujourd'hui et même dangereux !
Mais par habitude, bon nombre d'administrateurs et de programmes continuent d'employer le mot "SSL" !
Ne soyez pas surpris donc, de le trouver partout !
Pour ceux qui ne sont pas contumier de vi, utilisez nano à la place !
apt update && apt upgrade -y
apt install apache2 -y
systemctl start apache2 && systemctl enable apache2
a2enmod ssl
mkdir /etc/apache2/TLS
cd /etc/apache2/TLS
openssl genrsa 4096 > ca.key
openssl req -new -x509 -days 365 -nodes -key ca.key > ca.crt
(Pour les tutos, nous restons dans le dossier /etc/apache2 pour placer nos clefs et certificats TLS (/etc/apache2/TLS), mais une bonne pratique consiste à les placer dans /etc/ssh/private et /etc/ssl/certs.)
Il y a 2 façons de faire. Soit vous stipulez un mot de passe lors de la création (ce qui vous posera problème dans certaines applications. Soit vous n'en créez pas :
- Avec mot de passe :
openssl genrsa -aes256 4096 > cleprivapache.key
-(ou) Sans mot de passe (je vous suggère de mettre sans mot de passe pour la suite du tuto) :
openssl genrsa 4096 > cleprivapache.key
openssl req -new -key cleprivapache.key > demandesignature.csr
openssl x509 -req -in demandesignature.csr -out certifapache.crt -CA ca.crt -CAkey ca.key -CAcreateserial -days 365
(Nous aurons besoin des 2 fichiers suivants pour notre vhost :
- certifapache.crt (le certificat autosigné)
- cleprivapache.key (clé privée pour apache))
Dernière étape très importante, modifier les permissions de vos clefs et certificats :
(à n'effectuer qu'après avoir tout généré !)
chmod -R 600 /etc/apache2/TLS
mkdir /var/www/www.jesuissuper.com
echo "Mon super premier site !" > /var/www/www.jesuissuper.com/index.html
cd /etc/apache2/sites-available/
cp default-ssl.conf default-ssl.conf.BAK
mv default-ssl.conf www.jesuissuper.com.conf
vi www.jesuissuper.com.conf
# On édite le fichier, avec au moins les informations (dé-commentées) suivantes :
<VirtualHost _default_:443>
ServerName www.jesuissuper.com
DocumentRoot /var/www/www.jesuissuper.com
SSLEngine on
SSLCertificateFile /etc/apache2/TLS/certifapache.crt
SSLCertificateKeyFile /etc/apache2/TLS/cleprivapache.key
</VirtualHost>
On enregistre et on quitte
a2ensite www.jesuissuper.com.conf
(le nom des sites possibles s'affiche), tapper jesuissuper
systemctl restart apache2
(ou systemctl reload apache2, si votre serveur était déjà en fonctionnement)
Mettez en place une résolution de nom sur votre hôte.
vi /etc/hosts
IP-DU-SERVEUR-WEB www.jesuissuper.com
modifier le fichier hosts (cliquez ici pour accéder à la procédure), y ajouter la même ligne qu'au-dessus
(via scp ou winscp)
Ouvrez les certificats Utilisateurs Windows et importez le ca.crt puis redémarrez Windows.