Home > Informatique > Ajout du support https sur un serveur Apache

Ajout du support https sur un serveur Apache

février 28th, 2014 Leave a comment Go to comments

Si comme moi vous hébergez un blog sur votre serveur, le besoin d’avoir une connexion sécurisée https se fait vite ressentir, que ce soit pour accéder à la partie administration de votre site ou pour la manipulation de vos bases de données avec phpMyAdmin par exemple. Je vous propose donc ici un petit tutoriel avec le serveur Apache2 qui explique comment rendre accessible en https un site web (ici libre-experience.org).

Installation des paquets nécessaires et activation du module SSL

Le pré-requis est qu’Apache soit installé. Il faut ensuite ajouter les paquets suivants :

apt-get install openssl ssl-cert
Ensuite il faut activer le module ssl :
a2enmod ssl

Génération des certificats SSL

Création de la clé

cd /etc
openssl genrsa -out private/libre-experience.org.key 2048

Génération du Certificate Signing Requests (CSR)

Il s’agit de la demande de signature d’un certificat par une autorité de certification. Le certificat signé sera ensuite retourné. Le champ important est Common name (CN) dans lequel on pourra mettre par exemple :

  • www.libre-experience.org : certificat pour le site https://www.libre-experience.org
  • *.libre-experience.org : extension à tous les sous-domaines xyz.libre-experience.org
  • *.libre-experience.org/CN=libre-experience.org : on ajoute en plus libre-experience.org (ainsi https://libre-experience.org sera reconnue)

openssl req -new -key private/libre-experience.org.key -out libre-experience.org.csr

Signature du certificat

Pour signer le certificat, deux possibilités s’offrent à nous :

  • Auto-signature du certificat : c’est la solution la plus simple mais aussi la moins bonne car ne fournissant aucune garantie…
    openssl x509 -req -days 3650 -in libre-experience.org.csr -signkey private/libre-experience.org.key -out certs/libre-experience.org.crt
  • Signature (gratuite) par l’autorité CACert :
    • Dans le menu sélectionner : “Server certificates / new”
    • Copier le contenu de la demande de certificat générée précédemment (ici libre-experience.org.csr).
    • Copier le résultat obtenu dans le fichier certs/libre-experience.org.crt

Installation

Dans le fichier de configuration du site (par exemple /etc/apache2/sites-available/libre-experience.site ajouter :
<VirtualHost 88.191.151.123:443>
DocumentRoot /var/www/libre-experience
ServerName www.mirelsol.org
# Add ssl protocol
SSLEngine On
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
SSLCertificateFile /etc/ssl/certs/mirelsol.org.crt
SSLCertificateKeyFile /etc/ssl/private/mirelsol.org.key
</VirtualHost>

Recharger Apache :
/etc/init.d/apache2 reload

Categories: Informatique Tags: .: apache .: https .: ssl
  1. février 28th, 2014 at 21:00 | #1

    tu devrais utiliser CaCert comme autorité de certification. ça permet que tes lecteurs utilisent ton HTTPS facilement.

  2. PapsOu
    mars 1st, 2014 at 00:35 | #2

    Excellent tuto/marque-page/pense-bête. Moi qui comptais utiliser SSL pour mon raspberry pi, j’appliquerai ces quelques manip’ dès que possible.

    Merci pour le tuyau !

  3. Marco
    mars 1st, 2014 at 09:15 | #3

    Oui c’est ce qui est expliqué dans le tuto : c’est gratuit et simple à mettre en oeuvre.

  4. mars 5th, 2014 at 12:13 | #4

    Attention à la longueur de la clé pour une signature par Cacert : moins de 2048 et il faudra la régénérer.
    Juste une question, pourquoi Apache plutôt d’un autre serveur web (nginx, lighttpd)?

  5. Marco
    mars 5th, 2014 at 17:15 | #5

    Merci pour la précision sur la longueur de la clé… je ne savais pas.
    Pour le serveur web c’est celui que j’utilise pour plusieurs sites mais un tuto pour d’autres serveurs http est le bienvenu !

  1. No trackbacks yet.