Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Klasy System.Net obsługują kilka sposobów wybierania i weryfikowania System.Security.Cryptography.X509Certificates połączeń Secure Socket Layer (SSL). Klient może wybrać co najmniej jeden certyfikat, aby uwierzytelnić się na serwerze. Serwer może wymagać, aby certyfikat klienta miał co najmniej jeden określony atrybut do uwierzytelniania.
Definicja
Certyfikat to strumień bajtów ASCII, który zawiera klucz publiczny, atrybuty (takie jak numer wersji, numer seryjny i data wygaśnięcia) oraz podpis cyfrowy z urzędu certyfikacji. Certyfikaty służą do nawiązywania szyfrowanego połączenia lub uwierzytelniania klienta na serwerze.
Wybór i walidacja certyfikatu klienta
Klient może wybrać co najmniej jeden certyfikat dla określonego połączenia SSL. Certyfikaty klienta można skojarzyć z połączeniem SSL z serwerem internetowym lub serwerem poczty SMTP. Klient dodaje certyfikaty do kolekcji obiektów klasy X509Certificate lub X509Certificate2. Używając poczty e-mail jako przykładu, kolekcja certyfikatów jest wystąpieniem X509CertificateCollection, skojarzonym z właściwością ClientCertificates klasy SmtpClient. Klasa HttpWebRequest ma podobną ClientCertificates właściwość.
Podstawową różnicą między X509Certificate klasą a X509Certificate2 klasą jest to, że klucz prywatny musi znajdować się w magazynie certyfikatów w przypadku klasy X509Certificate.
Nawet jeśli certyfikaty są dodawane do kolekcji i skojarzone z określonym połączeniem SSL, żadne certyfikaty nie będą wysyłane do serwera, chyba że serwer ich zażąda. Jeśli na połączeniu ustawiono wiele certyfikatów klienta, najlepszy z nich zostanie wybrany na podstawie algorytmu, który uwzględnia dopasowanie między listą wystawców certyfikatów dostarczonych przez serwer a nazwą wystawcy certyfikatu klienta.
Klasa SslStream zapewnia jeszcze większą kontrolę nad uzgadnianiem SSL. Klient może określić pełnomocnika, aby wybrać certyfikat klienta do użycia.
Serwer zdalny może sprawdzić, czy certyfikat klienta jest prawidłowy, bieżący i podpisany przez odpowiedni urząd certyfikacji. Delegata można dodać do elementu ServerCertificateValidationCallback , aby wymusić weryfikację certyfikatu.
Wybór certyfikatu klienta
Program .NET Framework wybiera certyfikat klienta, który ma być prezentowany serwerowi w następujący sposób:
Jeśli certyfikat klienta został wcześniej przedstawiony na serwerze, certyfikat jest buforowany po raz pierwszy i jest ponownie używany do kolejnych żądań certyfikatów klienta.
Jeśli delegat jest obecny, zawsze używaj wyniku delegata jako certyfikatu klienta do wyboru. Spróbuj użyć buforowanego certyfikatu, jeśli to możliwe, ale nie używaj buforowanych poświadczeń anonimowych, jeśli delegat zwrócił wartość null, a kolekcja certyfikatów nie jest pusta.
Jeśli jest to pierwsze wyzwanie dla certyfikatu klienta, system wylicza certyfikaty w X509Certificate lub obiekty klas X509Certificate2 skojarzone z połączeniem. System szuka dopasowania między listą wystawców certyfikatów dostarczonych przez serwer a nazwą wystawcy certyfikatu klienta. Pierwszy zgodny certyfikat jest wysyłany do serwera. Jeśli żaden certyfikat nie jest zgodny lub kolekcja certyfikatów jest pusta, do serwera zostanie wysłane anonimowe poświadczenie.
Narzędzia konfiguracji certyfikatów
Dostępnych jest wiele narzędzi do konfiguracji certyfikatu klienta i serwera.
Narzędzie Winhttpcertcfg.exe może służyć do konfigurowania certyfikatów klienta. Narzędzie Winhttpcertcfg.exe jest udostępniane jako jedno z narzędzi z zestawem Resource Kit systemu Windows Server 2003. To narzędzie jest również dostępne do pobrania w ramach narzędzi Zestawu zasobów systemu Windows Server 2003 pod adresemwww.microsoft.com.
Narzędzie HttpCfg.exe może służyć do konfigurowania HttpListener certyfikatów serwera dla klasy . Narzędzie HttpCfg.exe jest dostępne jako jedno z narzędzi pomocy technicznej dla systemów Windows Server 2003 i Windows XP z dodatkiem Service Pack 2. HttpCfg.exe i inne narzędzia pomocy technicznej nie są instalowane domyślnie w systemie Windows Server 2003 lub Windows XP. W systemie Windows Server 2003. Narzędzia pomocy technicznej są instalowane oddzielnie od następującego folderu i pliku na dysku CD-ROM systemu Windows Server 2003:
\Support\Tools\Suptools.msi
Do użycia z dodatkiem Service Pack 2 systemu Windows XP narzędzia pomocy technicznej systemu Windows XP są dostępne do pobrania z www.microsoft.com.
Kod źródłowy do wersji narzędzia HttpCfg.exe jest również udostępniany jako przykład z zestawem SDK systemu Windows Server. Kod źródłowy przykładu HttpCfg.exe jest instalowany domyślnie z przykładami sieciowymi w ramach zestawu Windows SDK w następującym folderze:
C:\Program Files\Microsoft SDKs\Windows\v1.0\Samples\NetDS\http\serviceconfig
Oprócz tych narzędzi, klasy X509Certificate i X509Certificate2 udostępniają metody ładowania certyfikatu z systemu plików.