Comment créer un certificat SSL auto-signé pour accéder en https à son site internet ? Un certificat SSL (Secure Sockets Layer) nous permettra de sécuriser les communications entre notre site web et les utilisateurs.

Dans cet article, nous allons voir comment générer un certificat SSL auto-signé pour notre site, ce qui vous permettra d’activer le protocole HTTPS. Je vous montre les commandes à utiliser ci-dessous dans un serveur Linux.

Générer une clé privée RSA

La première étape consiste à générer une clé privée RSA. Voici comment faire avec openssl. Je vais dans le répertoire ssl et je vais créer un dossier « numelion » pour stocker ma clé.

La commande ci-dessous va générer une clé privée RSA de 2048 bits. Cette clé privée sera utilisée pour signer le certificat SSL.

cd /etc/ssl
mkdir numelion
cd numelion
sudo openssl genrsa -out cleNumelion.key 2048

Créer une demande de signature de certificat

Ensuite, nous allons créer une demande de signature de certificat (CSR) à l’aide de la clé privée que nous venons de générer dans l’étape précédente.

La commande ci-dessous va créer une demande de signature de certificat (CSR). La CSR contient des informations sur le site web (par exemple le nom de domaine) et la clé publique associée à la clé privée.

sudo openssl req -new -key cleNumelion.key -out demandeNumelion.csr
Créer un certificat SSL auto-signé dans Linux et Apache

Créer le certificat SSL auto-signé

Maintenant, nous allons créer le certificat SSL auto-signé en utilisant la demande de signature de certificat (CSR).

La commande ci-dessous génère le certificat SSL auto-signé. Selon nos paramètres, le certificat est valide pendant 365 jours à partir de sa création.

sudo openssl x509 -req -days 365 -in demandeNumelion.csr -signkey cleNumelion.key -out certNumelion.crt
Résultat de la commande Linux openssl pour créer certificat SSL

Ajouter le certificat auto-signé au site pour l’accès HTTPS

Nous allons ouvrir le fichier de configuration du site Apache, dans l’exemple c’est celui par défaut, mais cela peut-être différent si vous avez des virtualhost par exemple.

cd /etc/apache2/sites-available
sudo nano 000-default.conf

On ajoute les lignes suivantes dans le fichier de configuration Apache pour activer le support SSL (donc https) et le chemin vers le certificat généré.

Pour cela, nous devons créer un nouveau virtualhost (ou modifier le port d’écoute du premier) avec le port 443 pour que notre serveur web écoute les requêtes https. C’est dans cette partie que nous allons ajouter les lignes suivantes :

SSLEngine on
SSLCertificateFile /etc/ssl/numelion/certNumelion.crt
SSLCertificateKeyFile /etc/ssl/numelion/cleNumelion.key
Créer virtualhost https pour site internet dans Apache serveur web

Activer le module SSL d’Apache2

Il ne reste plus qu’a activer le module SSL d’Apache2 et redémarrer le service Apache.

sudo a2enmod ssl
sudo systemctl restart apache2

Voilà, normalement vous devriez pouvoir accéder à votre si en https.

Attention, vous devriez avoir un message indiquant que le certificat n’est pas reconnu, car il n’a pas été créer par une autorité, c’est normal, vous pouvez passer outre.

Accepter le certificat SSL auto signé dans son navigateur