česky | english
O skupinových (wildcard) certifikátech
Asi víte, že certifikáty obsahující zástupný (wildcard) znak "*" v Obecném názvu (CommonName, CN) serveru se nazývají skupinové (wildcard) certifikáty.
RFC 2818 "HTTP nad TLS" uvádí:
Porovnávání probíhá podle porovnávacích pravidel uvedených v RFC 2459. Je-li v certifikátu uloženo více identit daného typu (například více než jeden název dNSName, je přípustné porovnání s kterýmkoli z takové skupiny). Názvy mohou obsahovat zástupný znak "*" [takový název nazveme "šablona"], jehož význam je úspěšně porovnat jakoukoli jednoduchou složku názvu domény nebo část takové složky. Tedy (příklad): šabloně "*.a.com" vyhoví "foo.a.com", ale už ne "bar.foo.a.com" [protože "bar.foo" není jednoduchá složka], a šabloně "f*.com" vyhoví "foo.com", ale ne bar.com [složka názvu "bar" je sice jednoduchá, ale nezačíná písmenem "f" a "*" se týká jen zbylé části složky].
Na druhé straně RFC 2595 "Používání TLS s IMAP, POP3 a ACAP", uvádí:
- Zástupný znak "*" se MŮŽE použít v certifikátu jako první složka názvu zleva. Například šabloně "*.example.com" vyhoví názvy "a.example.com", "foo.example.com", atd., ale už nevyhoví "example.com".
RFC 2459 při popisu porovnávání názvu počítače/domény skupinové domény (wildcards) výslovně nezmiňuje.
Zdá se tedy, že pro různé protokoly existují různé specifikace...
Zbývá: prozkoumat blíže RFC 3280 a RFC 5280
Chyba v IIS
Kódování žádosti o certifikát vytvořené pomocí IIS a obsahující zástupný znak "*" (wildcard) skončí chybou:
The following hostnames were rejected because the system couldn't link them to your account, if they are valid please verify the domains against your account.
česky:
Následující názvy počítačů byly odmítnuty, protože je systém nemohl propojit s Vaším účtem; pokud jsou platné, prosím ověřte domény podle svého účtu.
[Patrně jde o IIS verzi 5 nebo 6.]
Řešení
Použijte návod Vytvoření žádosti o certifikát pomocí OpenSSL s obecným názvem (Common Name, CN), který obsahuje "*" (wildcard) a importujte hotový certifikát do IIS.
IIS 8 na Windows serveru 2012 R2
V této verzi lze vytvořit:
- certifikát - bez specifikace, do souboru žádosti, nelze zde zadat alternativní názvy (SAN),
- certifikát domény - nevytváří soubor žádosti a získá certifikát u místní certifikační autority dosažitelné v místní síti; rovněž nelze zadat alternativní názvy.
Pro CAcert certifikáty je použitelná první funkce. Funkcí "Vytvořit žádost o certifikát..." se žádost vytvoří i s CN obsahujícím zástupný znak "*" a do souboru se uloží bez problémů. Chyba nastane až u funkce "Dokončit žádost o certifikát...", kde je třeba zadat soubor s vystaveným certifikátem od CA - ohlásí se, že nešlo certifikát odebrat (!), avšak po obnově zobrazení certifikátů je nový skupinový certifikát viditelný, jeho předmět skutečně obsahuje zástupný znak "*" a vše vypadá, že je v pořádku: certifikát lze v IIS (web --> vazby --> https) použít a je funkční.
Pro možnost zavedení alternativních názvů (SAN), například "*.firma.cz" a "firma.cz" je asi vhodnější vytvořit žádost pomocí MMC modulu Certifikáty.
Studie interoperability
Protože Mozilla neporovnává názvy podle RFC 2818, mohou existovat jiné produkty, které to také nedělají.
Přidejte sem laskavě svůj vlastní program typu prohlížeč/nástroj/knihovna/aplikace.
OpenSSL
Knihovna OpenSSL neobsahuje kód ke kontrole názvu serveru v certifikátu, takže záleží pouze na aplikaci, zda skupinový certifikát (wildcard) přijme.
Internet Explorer
Internet Explorer 6.0.2800.1106: * neporovná podřízené domény
Mozilla & Co
SeaMonkey 1.0.5 na Linuxu i Windows: * porovnává podřízené domény.
Firefox
1.5.0.7/Windows: porovná podřízené domény, zadaný název počítače (NIKOLI CN z certifikátu, což považuji za chybu) se zobrazuje na stavovém řádku. To je hlášeno jako chyba v https://bugzilla.mozilla.org/show_bug.cgi?id=159483, takže to může být v další verzi opraveno. Ale protože toto hlášení chyby bylo podáno už v roce 2002, asi chyba nějaký ten rok vydrží... NYNÍ VYŘEŠENO A OPRAVENO - viz uvedené hlášení chyby
- 3.0.0b5/Ubuntu: porovná podřízené domény.
Konqueror
- Konqueror 3.5.1: neporovná podřízené domény.
- Konqueror 3.5.4-0.5.fc5: porovná podřízené domény (použijte zámek v liště ikon - prověří údaje KDE SSL).
- Konqueror 3.5.9: porovná podřízené domény.
Oprava v SVN v listopadu 2005: http://bugs.kde.org/show_bug.cgi?id=106476
Opera
- Opera 9.00: pravděpodobně neporovná podřízené domény.
- Opera 9.27: porovná podřízené domény
Safari
- 3.1 (5525.13): porovná podřízené domény
Lynx
- Lynx 2.6.8rel.1 na FreeBSD: vůbec neporovnává skupinové certifikáty
- Lynx 2.8.6rel.4 na Linuxu: porovná podřízené domény
- Testováno na Ubuntu 7.10 (GnuTLS 1.6.3, SSL-MM 1.4.1)
Pod-verze
- 1.4.4 (r25188): porovná podřízené domény