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 onSSLCertificateFileSSLCertificateKeyFile
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
