Première rédaction de cet article le 7 avril 2008
Dernière mise à jour le 4 décembre 2008
Pour faire du TLS sur un serveur
HTTP Apache, la solution
la plus connue est le module mod_ssl
. Mais il en
existe une autre, le module
GnuTLS.
GnuTLS est une mise en œuvre libre du protocole TLS (ex-SSL, protocole normalisé dans le RFC 5246). Étant sous licence GPL, il peut être utilisé par des programmes GPL (alors que OpenSSL a une licence incompatible avec la GPL, ce qui a entrainé des problèmes pour plusieurs projets). GnuTLS offre également des possibilités qui sont absentes d'OpenSSL, comme la possibilité d'utiliser des clés PGP (RFC 5081) en sus des certificats X.509.
Sur une machine Debian, où tout est déjà
compilé et empaqueté, l'installation du module
mod_gnutls
d'Apache est triviale. Un coup de
aptitude install,
puis ln -s ../mods-available/gnutls.load
/etc/apache2/mods-enabled
(Sébastien Tanguy me fait
remarquer à juste titre qu'il existe une méthode de plus haut niveau,
la commande a2enmod
) et recharger Apache. Sa
configuration peut être aussi courte que :
GnuTLSEnable on GnuTLSCertificateFile /etc/ssl/certs/ssl-cert-Example.pem GnuTLSKeyFile /etc/ssl/private/ssl-cert-Example.key GnuTLSPriorities NORMAL
Et hop, ça marche avec des clients HTTP utilisant GnuTLS comme avec ceux utilisant OpenSSL comme Konqueror.
Une des forces de GnuTLS est qu'il permet l'utilisation de
l'extension de TLS SNI (Server Name Indication) qui
permet de mettre plusieurs certificats différents à des
Virtual Host Apache se partageant une seule adresse
IP. Il suffit de mettre une directive
GnuTLSCertificateFile
différente par
Virtual Host :
<VirtualHost _default_:443> # Site par défaut. Son certificat sera envoyé aux clients # non-SNI ... GnuTLSCertificateFile /etc/ssl/certs/ssl-cert-DEFAULT.example.net.pem ... <VirtualHost *:443> ... ServerName svn.example.net GnuTLSCertificateFile /etc/ssl/certs/ssl-cert-svn.example.net.pem ... <VirtualHost *:443> ... ServerName viewvc.example.net GnuTLSCertificateFile /etc/ssl/certs/ssl-cert-viewvc.example.net.pem ...
Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)
Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)