Tak jsem si zase jednou užil trošku s certifikáty pro RDP (Vzdálená plocha, Remote Desktop). A vřele doporučuju si nainstalovat SP1 pro Windows 7. Zbavíte se tím úplně zmagořeného klienta. Originální verze ve Windows 7, která měla číslo 6.1.7600 a 7.0 vypadala takto:
A hlásila občas některé haluzové věci typu:
Připojení bylo ukončeno, protože ze vzdáleného počítače byl přijat neočekávaný certifikát ověření serveru.
Tohle zrovna byl případ, kdy v certifikátu TS/RDP serveru nebyla vůbec cesta k CRL (Certificate Revocation List), tedy rozšíření zvané CDP (CRL Distribution Point). Pokud tam ta cesta byla, ale například nebyla dostupná, nebo jste prostě jenom nevěřili vydávající certifikační autoritě, tak to hlásilo další smysluplnou informaci:
Kvůli problémům s certifikátem zabezpečení nelze vzdálený počítač ověřit. Při ověřování certifikátu vzdáleného počítače došlo k následujícím chybám. Platnost certifikátu nebylo možno ověřit.
Chování Windows 7 klienta (verze 7.0 bez SP1)
Certifikát serveru se dá rozdělit na dva typy. Buď je to self-signed certifikát (vydaný podepsaný sám sebou), který si ten server vydá sám. Takový certifikát má stejné jméno vydavatele jako vlastníka (Issued To je stejné jako Issued By, neboli Subject je stejný jako Issuer). Nebo máte certifikát vydaný nějakou důvěryhodnou (nebo nedůvěryhodnou) certifikační autoritou (CA).
Pokud je na serveru self-signed certifikát, tak to klientovi nevadí. Zobrazí hlášku, že mu nevěří, ale můžete to odkliknout a pokračovat. A co ještě navíc, můžete si říct, že už nechcete, aby vás to příště znovu otravovalo.
Pokud je na serveru certifikát vydaný nějakou důvěryhodnou autoritou, klient provádí více kontrol. Hlavně musíte vydavateli, tedy certifikační autoritě, věřit. Musí jí věřit celý počítač, vůbec nestačí jenom,
aby jí věřil váš uživatel. Za druhé, klient musí být schopen ověřit
CRL (
Certificate Revocation List). Pokud váš certifikát nesplňuje obě podmínky, nedovolí vám to pokračovat. Jediná věc, kterou by vám to dovolilo odkliknout je špatné jméno v certifikátu - tzn. přistupujete tam přes nějaký alias.
Znamená to tedy, že pokud si dáte na server svůj vlastní certifikát, je nutné mít i z venku přístupné CRL a ručně zdůvěryhodňovat autoritu, pokud se tedy nejedná o firemní (doménový) počítač. To se dá sice vyřešit pomocí TS/RDP Gateway, ale zase je další práce navíc, pokud máte jen jeden nebo dva terminal servery.
Případ s TS/RDP Gateway by vypadal takto. Na všech strojích máte vlastní certifikáty, ale z venku lezete na TS/RDP Gateway. Gateway sama těm vnitřním certifikátům musí taky věřit. Ale z pohledu z venku je vybavena veřejným certifikátem, koupeným od nějaké celosvětově důvěryhodné autority.
Obecná doporučení
Na serveru nechte ten automaticky vygenerovaný certifikát. Je to sice self-signed certifikát (podepsaný sám sebou), ale bude to všechno jednodušší. Nebo si tam dejte certifikáty vlastní, ale potom používejte TS/RDP Gateway s nějakým koupeným, veřejným certifikátem, kterému všichni klienti věří.
A stejně si nainstalujte Service Pack 1 (SP1) pro Windows 7. Dostanete nového klienta, který není idiot a pokud se mu něco nelíbí, tak to můžete normálně odkliknout. Verze nového klienta, který je součástí Windows 7 Service Pack 1 je 6.1.7601 a protokolu 7.1. Poznáte to opět jednoduše ve vlastnostech klienta:
A ten je k vám mnohem, ale mnohem ohleduplnější.