Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Klasserna System.Net stöder flera sätt att välja och validera System.Security.Cryptography.X509Certificates för SSL-anslutningar (Secure Socket Layer). En klient kan välja ett eller flera certifikat för att autentisera sig till en server. En server kan kräva att ett klientcertifikat har ett eller flera specifika attribut för autentisering.
Definition
Ett certifikat är en ASCII-byteström som innehåller en offentlig nyckel, attribut (till exempel versionsnummer, serienummer och förfallodatum) och en digital signatur från en certifikatutfärdare. Certifikat används för att upprätta en krypterad anslutning eller för att autentisera en klient till en server.
Val och validering av klientcertifikat
En klient kan välja ett eller flera certifikat för en specifik SSL-anslutning. Klientcertifikat kan associeras med SSL-anslutningen till en webbserver eller en SMTP-e-postserver. En klient lägger till certifikat till en samling av X509Certificate eller X509Certificate2 klassobjekt. Med e-post som exempel är certifikatsamlingen en instans av en X509CertificateCollection) som är associerad med ClientCertificates klassens SmtpClient egenskap. Klassen HttpWebRequest har en liknande ClientCertificates egenskap.
Den primära skillnaden mellan X509Certificate klassen och X509Certificate2 är att den privata nyckeln måste finnas i certifikatarkivet X509Certificate för klassen.
Även om certifikat läggs till i en samling och associeras med en specifik SSL-anslutning skickas inga certifikat till servern om inte servern begär dem. Om flera klientcertifikat anges på en anslutning används det bästa baserat på en algoritm som tar hänsyn till matchningen mellan listan över certifikatutfärdare som tillhandahålls av servern och klientcertifikatutfärdarens namn.
Klassen SslStream ger ännu mer kontroll över SSL-handskakningen. En klient kan ange ett ombud som ska välja vilket klientcertifikat som ska användas.
En fjärrserver kan kontrollera att ett klientcertifikat är giltigt, aktuellt och signerat av lämplig certifikatutfärdare. Ett ombud kan läggas till i ServerCertificateValidationCallback för att framtvinga certifikatverifiering.
Val av klientcertifikat
.NET Framework väljer det klientcertifikat som ska presenteras för servern på följande sätt:
Om ett klientcertifikat tidigare visades för servern cachelagras certifikatet när det först visas och återanvänds för efterföljande klientcertifikatbegäranden.
Om en delegat är närvarande ska du alltid använda resultatet från delegaten som det klientcertifikat som ska väljas. Försök att använda ett cachelagrat certifikat när det är möjligt, men använd inte cachelagrade anonyma autentiseringsuppgifter om ombudet har returnerat null och certifikatsamlingen inte är tom.
Om detta är den första utmaningen för ett klientcertifikat räknar Ramverket upp certifikaten i X509Certificate eller klassobjekten X509Certificate2 som är associerade med anslutningen och letar efter en matchning mellan listan över certifikatutfärdare som tillhandahålls av servern och klientcertifikatutfärdarens namn. Det första certifikatet som matchar skickas till servern. Om inget certifikat matchar eller om certifikatsamlingen är tom skickas en anonym autentiseringsuppgift till servern.
Verktyg för certifikatkonfiguration
Ett antal verktyg är tillgängliga för konfiguration av klient- och servercertifikat.
Verktyget Winhttpcertcfg.exe kan användas för att konfigurera klientcertifikat. Verktyget Winhttpcertcfg.exe tillhandahålls som ett av verktygen med Windows Server 2003 Resource Kit. Det här verktyget är också tillgängligt som en nedladdning som en del av Windows Server 2003 Resource Kit Tools på www.microsoft.com.
Verktyget HttpCfg.exe kan användas för att konfigurera servercertifikat för HttpListener klassen. Verktyget HttpCfg.exe tillhandahålls som ett av supportverktygen för Windows Server 2003 och Windows XP Service Pack 2. HttpCfg.exe och de andra supportverktygen installeras inte som standard på antingen Windows Server 2003 eller Windows XP. På Windows Server 2003. supportverktygen installeras separat från följande mapp och fil på Windows Server 2003 CD-ROM:
\Support\Tools\Suptools.msi
För användning med Windows XP Service Pack 2 är Windows XP Support Tools tillgängliga som en nedladdning från www.microsoft.com.
Källkoden till en version av verktygetHttpCfg.exe tillhandahålls också som ett exempel med Windows Server SDK. Källkoden till HttpCfg.exe-exemplet installeras som standard med nätverksexemplen som en del av Windows SDK i följande mapp:
C:\Program Files\Microsoft SDKs\Windows\v1.0\Samples\NetDS\http\serviceconfig
Förutom dessa verktyg X509Certificate tillhandahåller klasserna och X509Certificate2 metoder för att läsa in ett certifikat från filsystemet.