(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Unterschiede bei der Zertifikatsvalidierung zwischen HTTPS, SSL über TCP und SOAP-Sicherheit

Sie können in Windows Communication Foundation (WCF) Zertifikate mit Sicherheit (SOAP) auf Nachrichtenebene neben der Transport Layer Security (TLS) über HTTP (HTTPS) oder TCP verwenden. In diesem Thema werden die Unterschiede bei der Überprüfung solcher Zertifikate beschrieben.

Wenn Sie HTTPS zur Kommunikation zwischen einem Client und einem Dienst verwenden, muss das Zertifikat, das der Client zur Authentifizierung für den Dienst verwendet, Vertrauensketten unterstützen. Es muss eine Verkettung zu einer vertrauenswerten Stammzertifizierungsstelle herstellen, anderenfalls gibt die HTTP-Ebene eine WebException mit der Meldung "Der Remoteserver hat einen Fehler zurückgegeben: (403) Unzulässig" aus. WCF gibt diese Ausnahme als MessageSecurityException aus.

Wenn Sie HTTPS zur Kommunikation zwischen einem Client und einem Dienst verwenden, muss das Zertifikat, mit dem der Server die Authentifizierung durchführt, standardmäßig Vertrauensketten unterstützen. Es muss eine Verkettung zu einer vertrauenswerten Stammzertifizierungsstelle herstellen, Es wird keine Online-Überprüfung durchgeführt, um herauszufinden, ob das Zertifikat widerrufen wurde. Sie können dieses Verhalten auch überschreiben, indem Sie einen RemoteCertificateValidationCallback-Rückruf registrieren, wie mit dem nachfolgenden Code dargestellt.


ServicePointManager.ServerCertificateValidationCallback +=
    new RemoteCertificateValidationCallback(ValidateServerCertificate);


Die Signatur für ValidateServerCertificate sieht folgendermaßen aus:


public static bool ValidateServerCertificate(
  object sender,
  X509Certificate certificate,
  X509Chain chain,
  SslPolicyErrors sslPolicyErrors)


Durch die Implementierung des ValidateServerCertificate können beliebige Überprüfungen durchgeführt werden, die der Entwickler der Clientanwendung für notwendig erachtet, um das Dienstzertifikat zu überprüfen.

Wenn Sie Secure Sockets Layer (SSL) über TCP oder die Nachrichtensicherheit (SOAP) verwenden, werden Clientzertifikate anhand des CertificateValidationMode-Eigenschaftswerts der X509ClientCertificateAuthentication-Klasse überprüft. Die Eigenschaft wird auf einen der X509CertificateValidationMode-Werte festgelegt. Die Sperrüberprüfung kann anhand der Werte des RevocationMode-Eigenschaftswerts der X509ClientCertificateAuthentication-Klasse durchgeführt werden. Die Eigenschaft wird auf einen der X509RevocationMode-Werte festgelegt.


myServiceHost.Credentials.ClientCertificate.Authentication.
    CertificateValidationMode=
    X509CertificateValidationMode.PeerOrChainTrust;       

myServiceHost.Credentials.ClientCertificate.Authentication.
    RevocationMode=X509RevocationMode.Offline; 


Wenn Sie SSL über TCP oder die (SOAP)-Nachrichtensicherheit verwenden, werden Dienstzertifikate anhand des CertificateValidationMode-Eigenschaftswerts der X509ServiceCertificateAuthentication-Klasse überprüft. Die Eigenschaft wird auf einen der X509CertificateValidationMode-Werte festgelegt.

Die Sperrüberprüfung kann anhand der Werte des RevocationMode-Eigenschaftswerts der X509ServiceCertificateAuthentication-Klasse durchgeführt werden. Die Eigenschaft wird auf einen der X509RevocationMode-Werte festgelegt.


myClient.ClientCredentials.ServiceCertificate.
    Authentication.CertificateValidationMode=
    X509CertificateValidationMode.PeerOrChainTrust;
myClient.ClientCredentials.ServiceCertificate.Authentication.
    RevocationMode = X509RevocationMode.Offline;


Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft