Ce court RFC ajoute aux
certificatsPKIX du
la possibilité de contenir
des adresses de
courrier électronique dont la partie
locale est en
Unicode. Et il modifie légèrement les
règles pour les noms de domaine en
Unicode dans les certificats.
Les certificats sur
l'Internet sont normalisés dans le , qui décrit un profil de
X.509 nommé PKIX
(définir un profil était nécessaire car la norme X.509 est bien
trop riche et complexe). Ce
permettait des noms de domaine en
Unicode (sections 4.2.1.10 et 7 du ) mais il suivait l'ancienne norme
IDN, celle des et suivants. Depuis, les IDN sont normalisés dans
le et suivants, et notre nouveau
modifie très légèrement le pour s'adapter à cette nouvelle norme de noms de
domaines en Unicode. Les noms de domaine dans un
certificat peuvent être présents dans les champs Sujet (titulaire
du certificat) et
Émetteur (AC ayant signé le certificat) mais aussi dans les contraintes sur le nom (une
autorité de certification peut être
limitée à des noms se terminant en
example.com, par exemple).
Notez que, comme avant, ces noms sont
exprimés dans le certificat en Punycode
(, xn--caf-dma.fr au lieu de
café.fr). C'est un bon exemple du fait que
les limites qui rendaient difficiles d'utiliser des noms de
domaine en Unicode n'avaient rien à voir avec le DNS
(qui n'a jamais
été limité à ASCII, contrairement à ce qu'affirme une
légende courante). En fait, le problème venait des applications
(comme PKIX), qui ne s'attendaient pas à
des noms en Unicode. Un logiciel qui traite des certificats
aurait été bien étonné de voir des noms de domaines
non-ASCII, et aurait peut-être
planté. D'où ce choix du Punycode.
Nouveauté plus importante de notre , les
adresses de courrier électronique en
Unicode (EAI pour Email Address Internationalization). Elles étaient déjà permises par la section 7.5 du , mais seulement pour la partie domaine
(à droite du @). Désormais, elles sont
également possibles dans la partie locale (à gauche du @). Le
donne tous les détails sur ce sujet.
Reste à savoir quelles AC vont accepter
Unicode. J'ai testé avec Let's
encrypt (avec le client Dehydrated, en mettant le
Punycode dans domains.txt) et ça marche, regardez le certificat de
. Le
voici, affiché par GnuTLS :
% gnutls-cli www.potamochère.fr
...
- subject `CN=www.xn--potamochre-66a.fr', issuer `CN=Let's Encrypt Authority X3,O=Let's Encrypt,C=US', serial 0x03ed9617bb88bab3ad5b236675d1dd6e5d27, ...
D'autres AC acceptent ces noms en Unicode :
Gandi le fait aussi, regardez le certificat
de . On
notera que le célèbre service de test de la qualité des
configurations TLS, SSLlabs, gère bien les IDN :
Enfin, le registre du
.ru a participé au
développement
de logiciels pour traiter l'Unicode dans les certificats.