Adieu RFC 2817, bonjour RFC 3546

L’an dernier, ayant lu les docs Apache 2.2 dans un moment d’égarement, je parlais des extensions RFC 2817 du module SSL permettant de ne plus multiplier les adresses IP (maintenant de plus en plus rares en v4) lorsqu’on héberge plusieurs serveurs web sécurisés sur une même machine, une plaie avec https. On attendait alors la sortie de Firefox 3.

Celui-ci étant maintenant arrivé depuis un bon moment, je me suis réattaqué ce soir à la question, titillé par un article récent de Stéphane consacré à la légèreté proverbiale de X509.

Eh bien… j’avais tout faux. Firefox 3 ne supportera pas l’extension RFC 2817, car elle n’est pas adaptée à la question. À la place, il s’avère que la RFC 3546 décrit l’extension Server Name Indication, qui est non seulement prévue pour cela mais supportée depuis belle lurette par les navigateurs un peu modernes.

J’ai donc fait un essai sur https://www.eu.org/ et https://eu.org/ (certificat racine ici), et ça semble marcher au moins avec Firefox 2, Firefox 3 et Konqueror 4 (et en IPv6 s’il vous plaît). Il paraît que ça fonctionne même avec Internet Explorer 7 et Opera 8 ; il ne manque que Safari.

Il faut tout de même installer mod_gnutls car mod_ssl attend la version 0.99 d’OpenSSL pour être capable de gérer ce genre de négociation.

Les incantations nécessaires dans la configuration Apache ne sont pas franchement compliquées :

NameVirtualHost *:443
<VirtualHost _default_:443>
  ServerName eu.org
  GnuTLSEnable On
  GnuTLSKeyFile eu.org.key
  GnuTLSCertificateFile eu.org.crt
  [...]
</VirtualHost>
<VirtualHost _default_:443>
  ServerName www.eu.org
  GnuTLSEnable On
  GnuTLSKeyFile www.eu.org.key
  GnuTLSCertificateFile www.eu.org.crt
  [...]
</VirtualHost>
No tips yet.
Be the first to tip!

Like this post? Tip me with bitcoin!

13DNKbDGj2bS2uVtQPSzwn7gUa2wbNVAMX

If you enjoyed reading this post, please consider tipping me using Bitcoin. Each post gets its own unique Bitcoin address so by tipping you're also telling me what you liked, in addition to contributing to the blog hardware and electricity, and perhaps a few beers if you don't mind :-)

13 Responses to “Adieu RFC 2817, bonjour RFC 3546”

  1. OB Says:

    Ça a l’air bon avec Safari et nickel avec Chrome.

  2. Pierre Says:

    OB : Arf ! Merci ! (je comprends que c’est pas la jungle avec Safari :-)

  3. Stéphane Bortzmeyer Says:

    Attention, ce n’est plus le RFC 3546 mais le 4366.

  4. Stéphane Bortzmeyer Says:

    Quel certificat est utilisé par défaut, pour les clients non-SNI comme wget ? Le premier ? Si oui, cela vaut la peine de lui donner plusieurs noms.

  5. Phil Regnauld Says:

    Stéphane: si on lui donne plusieurs nom au certificat (méthode ?), alors le client sera content si au moins un des nom correspond ?

  6. Stéphane Bortzmeyer Says:

    @Phil Regnauld: oui,c ‘est justement ce qu’expliquait mon article. Au lieu de « trouver le bon certificat », c’était, « faire un certificat attrape-tout ».

  7. Olivier Tharan Says:

    Pourquoi ton flux RSS ne contient pas l’article complet ?

  8. Pierre Says:

    Olivier Tharan : Tu es sérieux ? Parce que mon WordPress est configuré comme ça :-)

  9. Olivier Tharan Says:

    Oui je suis sérieux, les flux complets sont bien plus agréables à lire que les flux tronqués.

  10. Pierre Says:

    Olivier Tharan : je peux comprendre, mais est-ce vraiment si ennuyeux de venir sur le site pour lire l’article ? J’ai préféré cette configuration pour avoir des hits directs des lecteurs.

  11. Stéphane Bortzmeyer Says:

    Je viens de tester la méthode « ceinture et bretelles ». SNI (avec mod_gnutls) pour aiguiller vers le bon et donc le bon certificat puis certificats multi-noms dans le pour attraper les clients non-SNI (ce qui semble être le cas du client Subversion en ligne de commande).

    Ça marche très bien. Merci à tous.

    Les certificats multi-noms ont une autre utilité par rapport à SNI : le cas des ServerAlias. Par exemple :

    ServerName svn.generic-nic.net
    ServerAlias svn.rd.nic.fr

    (Normalement, le domaine au dessus marche si vous voulez tester. Le certificat de la CA est en https://www.generic-nic.net/PKI/)

  12. jpgaulier Says:

    Avec une éternité de retard, mais en accord avec les dire d’Olivier : oui, c’est vraiment pénible de devoir venir sur un site pour faire des “hits”. Ce qui intéresse les gens en rss, c’est de gagner du temps et d’avoir une information pertinente, pas d’aller sur les sites, ce qui fait perdre beaucoup de temps. Si je devais le faire pour chacun des sites que j’ai en rss pour chacun des articles, ça aurait vraiment très peu de sens d’avoir ce genre de technologies.

  13. Pierre Says:

    jpgaulier: Je préfère l’idée d’être maître de mes logs (donc, potentiellement, de mes stats d’accès, même si je n’en fais pas actuellement) à celle de les livrer à tel ou tel agrégateur RSS. Le fil RSS comporte le début de l’article et est généralement largement suffisant pour savoir rapidement si on désire le lire en intégralité ou pas.

    En tant qu’utilisateur, je trouve pénible la lecture de longs articles dans un fil RSS. Le site d’origine est généralement le mieux placé pour présenter le contenu correctement. Plus l’article est long, plus on a de chance que les formatages particuliers qui en facilitent la lecture soient altérés par l’agrégateur.