Le certificat SSL est important pour un serveur Web car il va crypté chaque communication avec le serveur Web et le Client. Pour avoir le HTTPS sur son serveur Web Apache2 qui se trouve sur la distribution Debian 11, il faut installer un certificat SSL. Dans cette procédure, je vais le réaliser à l’aide d’un VPS, un DNS et un certficat SSL de l’hébergeur 1&1 Ionos.
Prérequis pour un certificat SSL dans Apache2:
- Un VPS sous Debian 11
- Un DNS
- Un Certificat SSL (certficat.cert, certificat_intermédiaire.cert, cle_privee.key)
- Avoir installer Apache2
Installer un certificat SSL dans Apache2 :
Pour installer le certificat, utiliser un protocole de transfert de fichiers pour envoyer sur votre serveur les fichiers.
Nous allons créer plusieurs répertoire, chacun devra contenir un fichier.
mkdir -p /etc/ssl/cles
mkdir -p /etc/ssl/certificats
Dans le dossier « cles » on va y mettre le fichier de clé privées (.key)
Dans le dossier « certificats », il faut mettre les fichiers certificats (.cert), le certificat et le certificat intermédiaire.
Puis rendez-vous dans le fichier de configuration du VirtualHost de votre site à l’emplacement suivant /etc/apache2/sites-available/
Modifier votre VirtualHost :
<VirtualHost *:80>
ServerName votre-domaine.fr
ServerAdmin postmaster@votre-domaine.fr
DocumentRoot /var/www/votre-domaine
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
Redirect permanent / https://votre-domaine.fr
</VirtualHost>
<VirtualHost *:443>
ServerName votre-domaine.fr
ServerAdmin postmaster@votre-domaine.fr
DocumentRoot /var/www/votre-domaine
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certificats/votre-domaine.fr_ssl_certificate.cer
SSLCertificateKeyFile /etc/ssl/cles/votre-domaine.fr_private_key.key
SSLCertificateChainFile /etc/ssl/certificats/votre-domaine.fr_ssl_certificate_INTERMEDIATE.cer
</VirtualHost>
Une fois la configuration du VirtualHost faite et enregistrer, vous pouvez vérifier que votre configuration apache2 est correct :
Si vous n’aviez pas de VirtualHost avant, n’oubliez pas de l’activée ! Avec la commande a2ensite votre-domaine.fr
apachectl configtest
Si le message suivant vous est retourner, c’est que votre configuration est correct sinon il faut regarder votre fichier de configuration, il doit y avoir une erreur.
Une fois que vous êtes sûr que votre configuration est correct, alors vous pouvez redémarrer le service Apache2.
systemctl restart apache2
Après avoir fait cette opération si vous essayé de vous connecter sur votre domaine depuis un navigateur. Vous aller être automatiquement rediriger sur le protocole HTTPS, même si vous précisé que vous utilisé le protocole HTTP.
Sources :
https://wiki.debian.org/Apache