Sdílet prostřednictvím


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

Třídy System.Net podporují několik způsobů, jak pro připojení SSL (Secure Socket Layer) vybrat a ověřit System.Security.Cryptography.X509Certificates. Klient může vybrat jeden nebo více certifikátů k autentizaci vůči 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. Použitím e-mailu jako příkladu, kolekce certifikátů je instance X509CertificateCollection, spojená s ClientCertificates vlastností 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 handshake 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 pro 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 byl serveru dříve předložen klientský certifikát, certifikát se při prvním předložení ukládá do mezipaměti a je znovu použit při následných žádostech 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, Framework vytvoří výčet certifikátů v objektech třídy X509Certificate nebo X509Certificate2 přidružených k připojení a 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ástroje Sady prostředků Systému Windows Server 2003 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é