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

> > > > Installer et configurer le module gnutls pour Apache

Installer et configurer le module gnutls pour Apache

GnuTLS contrairement au plus utilisé mod_ssl est une implémentation libre du protocole SSL pour Apache.

Il supporte le SNI (Server Name Indication) permettant d’avoir plusieurs sites protégés par SSL sur la même adresse IP contrairemnt à mod_ssl (du moins sur les implémentations anciennes).

Installation du module

  1. sudo  apt-get install libapache2-mod-gnutls

On n’oublie pas de désactiver le module mod_ssl si présent pour éviter d’utiliser deux fois le port 443 :

  1. sudo a2dismod ssl

On active ensuite le module GnuTLS :

  1. sudo a2enmod gnutls

On doit ensuite redémarrer le serveur Apache avec la commande :

  1. sudo /etc/init.d/apache2 restart

Configuration spécifique

Activer le SNI

Pour activer la possibilité d’avoir plusieurs sites différents utilisant le port 443 (ssl), il faut utiliser la directive NameVirtualHost.

On édite le fichier de configuration des ports d’Apache2 :

  1. sudo nano /etc/apache2/ports.conf

Et ajouter dans la partie <IfModule mod_gnutls.c>...</IfModule> ajouter :

  1. NameVirtualHost *:443

Création d’un virtualhost

On peut maintenant créer un virtualhost qui se crée exactement comme pour un site normal :

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

On y ajoute la configuration de base suivante par exemple, conditionnée à la présence du module gnutls :

  1. <IfModule mod_gnutls.c>
  2. <VirtualHost *:443>
  3.         ServerAdmin webmaster@localhost
  4.         ServerName domaine.tld
  5.  
  6.         DocumentRoot /var/www
  7.         <Directory />
  8.                 Options FollowSymLinks
  9.                 AllowOverride None
  10.         </Directory>
  11.         <Directory /var/www/>
  12.                 Options Indexes FollowSymLinks MultiViews
  13.                 AllowOverride None
  14.                 Order allow,deny
  15.                 allow from all
  16.         </Directory>
  17.  
  18.         ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
  19.         <Directory "/usr/lib/cgi-bin">
  20.                 AllowOverride None
  21.                 Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
  22.                 Order allow,deny
  23.                 Allow from all
  24.         </Directory>
  25.  
  26.         ErrorLog ${APACHE_LOG_DIR}/error.log
  27.  
  28.         # Possible values include: debug, info, notice, warn, error, crit,
  29.         # alert, emerg.
  30.         LogLevel warn
  31.  
  32.         CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
  33. </VirtualHost>
  34. </IfModule>

Télécharger

NB : Attention pour le moment, nous n’avons toujours pas créé de certificat

Modification de vos certificats pour mod_gnutls

GnuTLS ne gère pas tout à fait les mêmes directives que mod_ssl pour l’indication des certificats, clés et chains nécessaires.

Les directives suivantes remplacent celles de mod_ssl :

  • GnuTLSCertificateFile remplace SSLCertificateFile ;
  • GnuTLSKeyFile remplace SSLCertificateKeyFile ;

Par contre il n’y a pas de directives pour remplacer :

  • SSLCertificateChainFile ;
  • SSLCACertificateFile ;

Ces deux dernières directives permettent de spécifier pour mod_ssl des certificats intermédiaires ou chainés.

Pour pallier ce manque il suffit d’insérer le contenu de ces certificats dans le votre.

Si on prend l’exemple de StartSSL ici, on a besoin de notre certificat ainsi que sub.class1.server.ca.pem et ca.pem.

Pour ce faire il suffit de les concaténer dans notre certificat comme ceci :

  1. # On ajoute sub.class1.server.ca.pem dans notre /etc/ssl/domaine.tld.pem
  2. cat sub.class1.server.ca.pem >> /etc/ssl/domaine.tld.pem
  3. # On ajoute ca.pem dans notre /etc/ssl/domaine.tld.pem
  4. cat ca.pem >> /etc/ssl/domaine.tld.pem

Télécharger

Ajout du certificat dans le virtualhost

On peut alors ajouter nos directives dans le virtualhost précédemment créé :

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

Et on ajoute dans notre virtualhost :

  1. GnuTLSEnable  on
  2.         GnuTLSKeyFile /etc/ssl/domaine.tld.key
  3.         GnuTLSCertificateFile /etc/ssl/domaine.tld.pem
  4.         GnuTLSPriorities NONE:+VERS-TLS1.1:+VERS-TLS1.0:+AES-256-CBC:+DHE-RSA:+RSA:+SHA1:+COMP-NULL:+COMP-DEFLATE

Télécharger

Activation du virtualhost et redémarrage

On peut maintenant activer le virtualhost :

  1. sudo a2ensite test-ssl

Puis recharger la configuration d’Apache :

  1. sudo /etc/init.d/apache2 reload

Vous devriez maintenant pouvoir accéder avec votre site à l’adresse : https://domaine.tld

Articles complémentaires

  • Auteur :
  • Publié le :
  • Mis à jour : 07/04/13

Aucun commentaire


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.