Fehlerbehebung bei SOAP SSL/TLS Secure Channel Trust-Problemen
Das Problem:
Benutzer können beim Zugriff auf einen SOAP-Webdienst auf die Fehlermeldung „Es konnte keine Vertrauensbeziehung für den sicheren SSL/TLS-Kanal hergestellt werden“ stoßen. Dies kann auch dann auftreten, wenn der Dienst zuvor funktioniert hat und von anderen Standorten aus weiterhin erreichbar ist.
Die Grundursache:
Dieser Fehler ist normalerweise auf Probleme mit dem SSL-Zertifikat auf dem Server zurückzuführen. Eine Diskrepanz zwischen dem Hostnamen des Servers und dem Hostnamen des Zertifikats oder die Verwendung eines selbstsignierten Zertifikats sind häufige Schuldige.
Beheben des Problems (Umgehen der Zertifikatsvalidierung):
Um die SSL-Zertifikatsvalidierung zu umgehen (mit äußerster Vorsicht verwenden):
Methode 1 (Lambda-Ausdruck):
<code class="language-csharp">System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true);</code>
Methode 2 (Lambda-Ausdruck mit Hostnamenprüfung):
<code class="language-csharp">System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, cert, chain, errors) => cert.Subject.Contains("YourServerName"));</code>
Methode 3 (traditionelle Methode mit Hostnamenprüfung):
<code class="language-csharp">ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateRemoteCertificate); // Validation Callback private static bool ValidateRemoteCertificate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors policyErrors) { bool result = cert.Subject.Contains("YourServerName"); return result; }</code>
Wichtiger Sicherheitshinweis:
Diese Lösungen deaktivieren die Zertifikatsvalidierung. Dies ist für externe Server sehr riskant und sollte nur für interne Server eingesetzt werden, bei denen die Auswirkungen auf die Sicherheit vollständig verstanden und akzeptiert werden. Bei unsachgemäßer Verwendung kann Ihr System anfällig für Man-in-the-Middle-Angriffe werden.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in meinem SOAP-Webdienst den Fehler „SSL/TLS Secure Channel Trust Relationship'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!