Certificat SSL sur un serveur apache2

De RomainGuyot

Nous allons voir quelles sont les configurations nécessaires pour afin de chiffrer les communications d'un serveur web Linux qui utilise apache2.

Voici quelques informations sur les certificats SSL :

  • Un certificat SSL (SecureSocketsLayer) assure l’authenticité de votre site Web.
  • Le protocole SSL chiffre la communication entre les ordinateurs.
  • Il existe des certificats signés par des autorités de certification de confiance et des certificats «auto-signés» (pour un usage interne ou des tests).
  • Un certificat SSL doit se renouveler périodiquement.
  • Il y a différentes «gammes» de certificat.
  • Google pénalise les sites sans certificat de sécurité.

La configuration

Installer openSSL sur votre machine Lancez la commande suivante pour générer un certificat autosigné openssl req x509 -nodes -days 3000 -newkey rsa:4096 -keyout /etc/ssl/NomDuServeur.key -out /etc/ssl/NomDuServeur.crt

Activer le module SSL a2enmod ssl

Redémarrer le service apache 2

Configurez le virtualHost sur le port 443 et indiquez l'emplacement de vos certificats

SSLEngine On SSLCertificateFile /etc/ssl/NomDuServeur.crt SSLCertificateKeyFile /etc/ssl/NomDuServeur.key


Mettre en place la redirection via une réécriture du port 80 vers le port 443

a2enmod rewrite

<VirtualHost *:80>

ServerName NomDuServeur.com

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

</VirtualHost>