Configurer un site intranet en https sur Apache2 AUTOSIGNE (Debian 13)

Introduction

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 !


Etape 1 : s'identifier en root, installer apache et openssl, activer TLS

apt update && apt upgrade -y
apt install apache2 -y
systemctl start apache2 && systemctl enable apache2
a2enmod ssl

Etape 2 : Créer notre propre Autorité de Certification (ca)

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.)


Etape 3 : Créer le certificat signé par une autorité interne

1) Créer la clé privée pour apache :

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

2) Créer un certificat normal, qui servira de fichier de demande de signature à notre autorité :

openssl req -new -key cleprivapache.key > demandesignature.csr

3) Faire signer notre demande de signature par notre propre autorité de certification (ca)

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

Etape 4 : créer (ou copier s'il est donné) le dossier du site (jesuissuper)

mkdir /var/www/www.jesuissuper.com
echo "Mon super premier site !" > /var/www/www.jesuissuper.com/index.html

Etape 5 : le vhost

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


Etape 6 : activer la configuration du vhost

a2ensite www.jesuissuper.com.conf

(le nom des sites possibles s'affiche), tapper jesuissuper


Etape 7 : redémarrage d'apache2

systemctl restart apache2

(ou systemctl reload apache2, si votre serveur était déjà en fonctionnement)


Etape 8 : résolution de nom

Mettez en place une résolution de nom sur votre hôte.

cas 1 : le PC est sur Linux :

vi /etc/hosts
IP-DU-SERVEUR-WEB      www.jesuissuper.com

cas 2 : le PC est sous windows.

modifier le fichier hosts (cliquez ici pour accéder à la procédure), y ajouter la même ligne qu'au-dessus


Etape 9 : Importer le certificat d'autorité sur votre navigateur Firefox : ca.crt sur votre PC

(via scp ou winscp)
Ouvrez les certificats Utilisateurs Windows et importez le ca.crt puis redémarrez Windows.


⬆️ Retour en haut de la page