Portál AbcLinuxu, 25. dubna 2024 13:35


Dotaz: Měl by HTTPS server posílat celý cert chain?

19.5.2014 08:53 Martin Beránek | skóre: 33 | blog: mousehouse | Brno
Měl by HTTPS server posílat celý cert chain?
Přečteno: 628×
Odpovědět | Admin
Nemohu nikde najít jednoznačnou odpověď na následující problém: mám serverový certifikát, ten je podepsaný autoritou a ta má nad sebou kořenový certifikát:
server certificate
   |
   '- certificate authority
         |
         '- root certificate
Měl by webový server posílat při navazování https všechny 3 certifikáty nebo jenom svůj serverový?

PS: na problém jsem narazi při komunikaci v javě, kdy java truststore obsahuje pouze kořenový, server posílal jenom svůj a já nebyl schopen sestavit celý certchain pro ověření...

never use rm after eight

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (Martin Beránek (tazatel))
19.5.2014 09:39 Filip Jirsák
Rozbalit Rozbalit vše Re: Měl by HTTPS server posílat celý cert chain?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ano, server by měl posílat celý certifikační řetězec. Ale není to žádná norma nebo standard, je to jen zkušenost z praxe, právě kvůli těm tří- a víceprvkovým řetězcům. Ale ne všichni to tak posílají, třeba online.postservis.cz posílá jen serverový certifikát, www.postsignum.cz posílá všechny tři, přitom obojí spadá pod Českou poštu.

Mezi důvěryhodnými certifikačními autoritami můžete mít jenom kořenový certifikát (např. ve Windows je v standardní konfiguraci Thawte Premium Server CA). Váš serverový certifikát je ale podepsán mezilehlým certifikátem (např. Thawte SSL CA, ten už ve Windows normálně není, Firefox ho ale myslím ve standardním úložišti má). Když tenhle certifikát nepošlete ze serveru, webový prohlížeč (nebo jiný klient) nemá kde by jej získal, a validace vašeho serverového certifikátu se nepodaří.

Předpokládám, že vy jste byl v roli klienta a jde o nějakou webovou službu – pak vám asi nezbývá, než si dát do truststore i ten mezilehlý certifikát. Respektive záleží na tom, jaký máte se serverem vztah a o jak důležité spojení jde. Pokud můžete být dopředu informován o změnách certifikátů a na bezpečnosti opravdu záleží, doporučuju ověřovat přímo serverový certifikát a na certifikační autority se vykašlat. Pokud tuhle možnost nemáte, dal bych do trustore certifikační řetězec od certifikátu, kterým je podepsán serverový certifikát (dá se předpokládat, že jím bude podepsán serverový certifikát i příště), až po kořenový certifikát CA. A jenom tyhle certifikáty, žádné jiné (pokládám za samozřejmé, že použijete vlastní trustore a nebudete spoléhat na to, co je zrovna náhodou v trustore dodávaném s Javou).

Pokud byste to potřeboval na Javovském serveru, je potřeba dát pozor na to, že ten certifikační řetězec musí být v truststore vložen opravdu jako řetězec v jednom záznamu trustore, nemůže to být vloženo jako tři samostatné certifikáty. U klientského řešení to nevadí, tam se prostě považují za důvěryhodné všechny certifikáty v truststore.
19.5.2014 15:12 Sten
Rozbalit Rozbalit vše Re: Měl by HTTPS server posílat celý cert chain?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Server by měl posílat svůj a mezilehlé CA, root je zbytečný. Buď jej klient má a důvěřuje mu, nebo ho nemá a prohlížeč tomu řetězu stejně nebude věřit.
19.5.2014 16:12 alkoholik | skóre: 40 | blog: Alkoholik
Rozbalit Rozbalit vše Re: Měl by HTTPS server posílat celý cert chain?
Jak pise Sten, root je zbytecny. Intermediate cert tam davej. Starsi klienti je nemivaji v trusted store.
Nedavno byla diskuze na dev@httpd.apache.org. Vyhledej si subjekt: mod_ssl patch: use new OpenSSL features to autofix cert chains:

..
Some of the common server chain misconfigurations are a) including the self-signed root certificate in the chain and b) missing an intermediate certificate in the chain. a) is bad because it bloats the handshake and b) is bad because the client can't always validate the chain.
..


19.5.2014 18:33 Filip Jirsák
Rozbalit Rozbalit vše Re: Měl by HTTPS server posílat celý cert chain?
Prohlížeč tomu řetězu sice věřit nebude, ale uživatel snáz ověří kořenový certifikát než nějaký mezilehlý. Na těch pár stech bajtech podle mne nemá smysl šetřit.
19.5.2014 20:34 Sten
Rozbalit Rozbalit vše Re: Měl by HTTPS server posílat celý cert chain?
To by mě zajímalo, jak bude uživatel ověřovat kořenový certifikát?
20.5.2014 06:41 Filip Jirsák
Rozbalit Rozbalit vše Re: Měl by HTTPS server posílat celý cert chain?
Uživatel by neměl mít v úložišti důvěryhodných certifikátů žádný certifikát, který sám neověřil. Ověřit ho může mnoha způsoby - telefonicky, na základě údajů na nějaké vizitce nebo letáku, podle nějakého seznamu důvěryhodných certifikátů...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.