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.
Du kan använda certifikat i Windows Communication Foundation (WCF) med säkerhet på meddelandenivå (SOAP) utöver TLS (Transport Layer Security) via HTTP (HTTPS) eller TCP. I det här avsnittet beskrivs skillnader i hur sådana certifikat verifieras.
Validering av HTTPS-klientcertifikat
När du använder HTTPS för att kommunicera mellan en klient och en tjänst måste certifikatet som klienten använder för att autentisera till tjänsten ha stöd för kedjeförtroende. Den måste alltså länkas till en betrodd rotcertifikatutfärdare. Annars genererar HTTP-lagret ett WebException med meddelandet "Fjärrservern returnerade ett fel: (403) Förbjudet." WCF ytbehandlar det här undantaget som en MessageSecurityException.
Validering av HTTPS-tjänstcertifikat
När du använder HTTPS för att kommunicera mellan en klient och en tjänst måste certifikatet som servern autentiserar med stödja kedjeförtroende som standard. Den måste alltså länkas till en betrodd rotcertifikatutfärdare. Ingen onlinekontroll utförs för att se om certifikatet har återkallats. Du kan åsidosätta det här beteendet genom att registrera ett RemoteCertificateValidationCallback återanrop, enligt följande kod.
ServicePointManager.ServerCertificateValidationCallback +=
new RemoteCertificateValidationCallback(ValidateServerCertificate);
ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf ValidateServerCertificate)
där signaturen för ValidateServerCertificate är följande:
public static bool ValidateServerCertificate(
object sender,
X509Certificate certificate,
X509Chain chain,
SslPolicyErrors sslPolicyErrors)
Public Shared Function ValidateServerCertificate(ByVal sender As Object, _
ByVal certificate As X509Certificate, _
ByVal chain As X509Chain, _
ByVal sslPolicyErrors As SslPolicyErrors) As Boolean
Implementeringen ValidateServerCertificate kan utföra alla kontroller som klientprogramutvecklaren anser vara nödvändiga för att verifiera tjänstcertifikatet.
Validering av klientcertifikat i SSL via TCP- eller SOAP-säkerhet
När du använder SSL (Secure Sockets Layer) via TCP- eller meddelandesäkerhet (SOAP) verifieras klientcertifikaten CertificateValidationMode enligt klassens egenskapsvärde X509ClientCertificateAuthentication . Egenskapen är inställd på ett av X509CertificateValidationMode värdena. Återkallningskontroll utförs enligt egenskapsvärdet i RevocationMode-klassen X509ClientCertificateAuthentication. Egenskapen är inställd på ett av X509RevocationMode värdena.
myServiceHost.Credentials.ClientCertificate.Authentication.
CertificateValidationMode=
X509CertificateValidationMode.PeerOrChainTrust;
myServiceHost.Credentials.ClientCertificate.Authentication.
RevocationMode=X509RevocationMode.Offline;
With myServiceHost.Credentials.ClientCertificate.Authentication
.CertificateValidationMode = X509CertificateValidationMode.PeerOrChainTrust
.RevocationMode = X509RevocationMode.Offline
End With
Validering av tjänstcertifikat i SSL över TCP och SOAP Security
När du använder SSL via TCP- eller SOAP-meddelandesäkerhet verifieras tjänstcertifikat enligt CertificateValidationMode klassens egenskapsvärde X509ServiceCertificateAuthentication . Egenskapen är inställd på ett av X509CertificateValidationMode värdena.
Återkallningskontroll utförs enligt egenskapsvärdet i RevocationMode-klassen X509ServiceCertificateAuthentication. Egenskapen är inställd på ett av X509RevocationMode värdena.
myClient.ClientCredentials.ServiceCertificate.
Authentication.CertificateValidationMode=
X509CertificateValidationMode.PeerOrChainTrust;
myClient.ClientCredentials.ServiceCertificate.Authentication.
RevocationMode = X509RevocationMode.Offline;
With myClient.ClientCredentials.ServiceCertificate.Authentication
.CertificateValidationMode = X509CertificateValidationMode.PeerOrChainTrust
.RevocationMode = X509RevocationMode.Offline
End With