Fiche passage en ssl avec certificat autosigné apache2

Introduction (BTS CIEL / SIO)

Dans un contexte BTS CIEL ou SIO, sécuriser un site web en HTTPS est une étape essentielle.
Le protocole SSL/TLS permet de chiffrer les échanges entre le client et le serveur.

Un certificat autosigné permet de :

  • tester HTTPS en environnement local
  • sécuriser des services internes
  • comprendre le fonctionnement du chiffrement

Configuration complète

#############################################
# INSTALLATION ET MODULES
#############################################

apt update
apt install apache2 openssl -y

a2enmod ssl
a2enmod rewrite
systemctl reload apache2

#############################################
# CREATION DU CERTIFICAT AUTOSIGNE
#############################################

mkdir -p /etc/ssl/apache2

openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout /etc/ssl/apache2/ssl.key \
-out /etc/ssl/apache2/ssl.crt

#############################################
# CREATION DU VIRTUALHOST HTTPS
#############################################

nano /etc/apache2/sites-available/monsite-ssl.conf
<VirtualHost *:443>

ServerName monsite.local
DocumentRoot /var/www/monsite

SSLEngine on
SSLCertificateFile /etc/ssl/apache2/ssl.crt
SSLCertificateKeyFile /etc/ssl/apache2/ssl.key

<Directory /var/www/monsite>
AllowOverride All
Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/ssl_error.log
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined

</VirtualHost>
#############################################
# REDIRECTION HTTP VERS HTTPS
#############################################

nano /etc/apache2/sites-available/monsite.conf
<VirtualHost *:80>

ServerName monsite.local

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

</VirtualHost>
#############################################
# ACTIVATION DES SITES
#############################################

a2ensite monsite-ssl.conf
a2ensite monsite.conf

#############################################
# DESACTIVATION DU SITE PAR DEFAUT
#############################################

a2dissite 000-default.conf

#############################################
# VERIFICATION ET RECHARGEMENT
#############################################

apache2ctl configtest
systemctl reload apache2

Explication détaillée

Certificat autosigné

La commande openssl req permet de générer :

  • une clé privée (ssl.key)
  • un certificat (ssl.crt)

Ces fichiers permettent d’activer le chiffrement HTTPS.


VirtualHost HTTPS

Le port 443 est utilisé pour HTTPS.
Les directives suivantes sont obligatoires :

  • SSLEngine on
  • SSLCertificateFile
  • SSLCertificateKeyFile

Redirection HTTP → HTTPS

Permet de forcer tous les utilisateurs à utiliser HTTPS.
La redirection est permanente (code 301).


Activation des sites

Apache utilise :

  • /sites-available → configuration
  • /sites-enabled → sites actifs

Vérification

apache2ctl configtest
systemctl status apache2

Test

Dans un navigateur :

https://monsite.local

Un avertissement apparaîtra :

  • normal avec un certificat autosigné
  • accepter l’exception pour continuer

Points clés

  • HTTPS chiffre les communications
  • certificat autosigné = usage local ou interne
  • toujours rediriger HTTP vers HTTPS
  • vérifier la configuration avant reload
  • surveiller les logs en cas d’erreur

Limites du certificat autosigné

  • non reconnu par les navigateurs
  • alerte de sécurité affichée
  • non adapté à la production

Suite logique

Pour aller plus loin :

  • certificat Let’s Encrypt
  • sécurisation TLS (protocoles, ciphers)
  • headers de sécurité
  • reverse proxy HTTPS
Retour en haut