Sdílet prostřednictvím


Výběr a ověření certifikátu

Třídy System.Net podporují několik způsobů, jak vybrat a ověřit System.Security.Cryptography.X509Certificates připojení SSL (Secure Socket Layer). Klient může vybrat jeden nebo více certifikátů, které se mají ověřit na serveru. Server může vyžadovat, aby klientský certifikát měl jeden nebo více konkrétních atributů pro ověřování.

Definice

Certifikát je datový proud BAJTŮ ASCII, který obsahuje veřejný klíč, atributy (například číslo verze, sériové číslo a datum vypršení platnosti) a digitální podpis od certifikační autority. Certifikáty slouží k navázání šifrovaného připojení nebo k ověření klienta na serveru.

Výběr a ověření klientského certifikátu

Klient může vybrat jeden nebo více certifikátů pro konkrétní připojení SSL. Klientské certifikáty lze přidružit k připojení SSL k webovému serveru nebo poštovnímu serveru SMTP. Klient přidá certifikáty do kolekce X509Certificate objektů nebo X509Certificate2 objektů třídy. Jako příklad používáte e-mail, kolekce certifikátů je instance a X509CertificateCollection) přidružená k ClientCertificates vlastnosti SmtpClient třídy. Třída HttpWebRequest má podobnou ClientCertificates vlastnost.

Hlavním rozdílem mezi X509Certificate třídou a X509Certificate2 třídou je, že privátní klíč musí být umístěn v úložišti certifikátů pro X509Certificate třídu.

I když se certifikáty přidají do kolekce a přidruží se ke konkrétnímu připojení SSL, nebudou se na server odesílat žádné certifikáty, pokud je server nepožádá. Pokud je pro připojení nastaveno více klientských certifikátů, použije se nejlepší na základě algoritmu, který považuje shodu mezi seznamem vystavitelů certifikátů poskytovaných serverem a názvem vystavitele klientského certifikátu.

Třída SslStream poskytuje ještě větší kontrolu nad metodou handshake PROTOKOLU SSL. Klient může určit delegáta, který má vybrat klientský certifikát, který se má použít.

Vzdálený server může ověřit, jestli je klientský certifikát platný, aktuální a podepsaný příslušnou certifikační autoritou. Delegáta lze přidat k ServerCertificateValidationCallback vynucení ověření certifikátu.

Výběr klientského certifikátu

Rozhraní .NET Framework vybere klientský certifikát, který se má na serveru prezentovat následujícím způsobem:

  1. Pokud se na server zobrazil dříve klientský certifikát, certifikát se při prvním zobrazení ukládá do mezipaměti a znovu se použije pro následné žádosti o klientský certifikát.

  2. Pokud je delegát k dispozici, vždy použijte výsledek od delegáta jako klientský certifikát k výběru. Pokud je to možné, zkuste použít certifikát uložený v mezipaměti, ale nepoužívejte anonymní přihlašovací údaje uložené v mezipaměti, pokud delegát vrátil hodnotu null a kolekce certifikátů není prázdná.

  3. Pokud se jedná o první výzvu pro klientský certifikát, rozhraní Vytvoří výčet certifikátů v X509Certificate objektech třídy nebo X509Certificate2 objektů třídy přidružených k připojení, hledá shodu mezi seznamem vystavitelů certifikátů poskytovaných serverem a názvem vystavitele klientského certifikátu. První certifikát, který odpovídá, se odešle na server. Pokud žádný certifikát neodpovídá nebo je kolekce certifikátů prázdná, odešle se na server anonymní přihlašovací údaje.

Nástroje pro konfiguraci certifikátu

Pro konfiguraci certifikátu klienta a serveru je k dispozici celá řada nástrojů.

Nástroj Winhttpcertcfg.exe lze použít ke konfiguraci klientských certifikátů. Nástroj Winhttpcertcfg.exe je k dispozici jako jeden z nástrojů se sadou Windows Server 2003 Resource Kit. Tento nástroj je také k dispozici ke stažení jako součást nástrojů sady Windows Server 2003 Resource Kit v www.microsoft.com.

Nástroj HttpCfg.exe lze použít ke konfiguraci certifikátů serveru pro HttpListener třídu. Nástroj HttpCfg.exe je k dispozici jako jeden z nástrojů podpory pro systém Windows Server 2003 a Windows XP Service Pack 2. HttpCfg.exe a ostatní nástroje podpory nejsou ve výchozím nastavení nainstalovány v systému Windows Server 2003 nebo Windows XP. V systému Windows Server 2003. nástroje podpory jsou nainstalovány odděleně od následující složky a souboru na disku CD-ROM systému Windows Server 2003:

\Support\Tools\Suptools.msi

Pro použití s aktualizací Windows XP Service Pack 2 jsou nástroje podpory systému Windows XP k dispozici jako stažení z www.microsoft.com.

Zdrojový kód pro verzi nástroje HttpCfg.exe se také poskytuje jako ukázka se sadou Windows Server SDK. Zdrojový kód ukázky HttpCfg.exe se ve výchozím nastavení nainstaluje se síťovými ukázkami jako součást sady Windows SDK v následující složce:

C:\Program Files\Microsoft SDKs\Windows\v1.0\Samples\NetDS\http\serviceconfig

Kromě těchto nástrojů X509Certificate a X509Certificate2 třídy poskytují metody pro načtení certifikátu ze systému souborů.

Viz také