Documentation technique : Debian
Documentation basée sur la distribution Debian

> > > > Installer et configurer le module ssl pour Apache2

Installer et configurer le module ssl pour Apache2

Vérifier que les paquets nécessaires sont déjà installés (libssl0.9.8, openssl, ssl-cert) :

  1. dpkg -l | grep ssl

Chaque paquet doit apparaitre avec les deux lettres ii en suffixe si c’est déjà le cas. Il sont normalement sensés déjà être installés.

Dans le cas contraire, installer openSSL

  1. sudo apt-get install openssl

Création d’un certificat auto-signé

Afin de pouvoir utiliser une connexion ssl, il est nécessaire d’avoir un certificat signé qui peut coûter très cher. Dans notre cas nous allons créer un certificat auto-signé, considéré comme non sûr par les navigateurs mais suffisant pour obtenir une connexion SSL au serveur.

On va créer le certificat nécessaire dans le répertoire /etc/apache2/ssl que l’on crée s’il n’existe pas :

  1. sudo mkdir /etc/apache2/ssl

Puis nous allons y créer notre certificat :

  1. sudo /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

Il faut alors répondre à une question demandant le nom d’hôte du serveur.

Votre certificat se trouve donc à l’emplacement /etc/apache2/ssl/apache.pem.

Configuration spécifique d’apache

Dans un premier temps il est nécessaire que le serveur apache écoute sur le port 443. Pour cela il suffit d’éditer le ficher /etc/apache2/ports.conf et vérifier que la ligne Listen 443 y soit présente.

La meilleur manière de l’intégrer est de l’écrire de la sorte :

  1. <IfModule mod_ssl.c>
  2.     Listen 443
  3. </IfModule>

Télécharger

Ainsi, lors de la désactivation (volontaire ou non) du module SSL d’Apache, la configuration restera correcte et ne plantera pas le serveur.

Dans un second temps il est nécessaire de créer un virtualhost Apache prenant en compte notre certificat ssl. Debian et Ubuntu en fournisse un par défaut (/etc/apache2/sites-available/default-ssl) que nous allons modifier pour tester.

  1. sudo nano /etc/apache2/sites-available/default-ssl

On vérifie que le contenu suivant au moins y soit présent (commentez avec le caractère dièse "#" toute référence à d’autres certificats :

  1. <IfModule mod_ssl.c>
  2. <VirtualHost _default_:443>
  3.         ServerAdmin webmaster@localhost
  4.  
  5.         DocumentRoot /var/www
  6.         <Directory />
  7.                 Options FollowSymLinks
  8.                 AllowOverride None
  9.         </Directory>
  10.         <Directory /var/www/>
  11.                 Options Indexes FollowSymLinks MultiViews
  12.                 AllowOverride None
  13.                 Order allow,deny
  14.                 allow from all
  15.         </Directory>
  16.  
  17.         ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
  18.         <Directory "/usr/lib/cgi-bin">
  19.                 AllowOverride None
  20.                 Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
  21.                 Order allow,deny
  22.                 Allow from all
  23.         </Directory>
  24.  
  25.         ErrorLog /var/log/apache2/error.log
  26.  
  27.         # Possible values include: debug, info, notice, warn, error, crit,
  28.         # alert, emerg.
  29.         LogLevel warn
  30.  
  31.         CustomLog /var/log/apache2/ssl_access.log combined
  32.  
  33.         #   SSL Engine Switch:
  34.         #   Enable/Disable SSL for this virtual host.
  35.         SSLEngine on
  36.         SSLCertificateFile /etc/apache2/ssl/apache.pem
  37. </VirtualHost>
  38. </IfModule>

Télécharger

Activation finale et redémarrage du serveur apache

Puis vous pouvez activer le module ssl pour Apache, le virtualhost ssl et redémarrer Apache :

  1. a2enmod ssl
  2. a2ensite default-ssl
  3. sudo /etc/init.d/apache2 restart

Télécharger

Il est ensuite possible de tester que cela fonctionne en allant à l’adresse : https://www.domaine.tld:443 ou https://www.domaine.tld.

Votre navigateur devrait spécifier que le certificat n’est pas considéré comme sûr mais vous permettre de voir et d’accepter le certificat afin de pouvoir avoir accès à la page en question (qui devrait être la même sans le "s" à http et sans le :443 en fin d’adresse).

Articles complémentaires

  • Auteur :
  • Publié le :
  • Mis à jour : 16/08/15

18 commentaires


Qui êtes-vous ?
[Se connecter]
Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.