gpt4 book ai didi

c# - 基于 SSL + X.509 的 Web 服务返回 SSL/TLS 错误

转载 作者:太空宇宙 更新时间:2023-11-03 13:27:26 24 4
gpt4 key购买 nike

我在 Visual Studio 2013 中编写了一个 asmx 网络服务。WS 正在连接到使用 HTTPS 和 X.509 进行身份验证的提供商。

我曾尝试使用“basicHttpBinding”和“basicHttpsBinding”(Web.config) 进行连接,但总是出现以下错误。

错误:System.ServiceModel.Security.SecurityNegotiationException:无法使用权​​限“www.providers-site.se”为 SSL/TLS 建立安全通道。 ---> System.Net.WebException:请求被中止:无法创建 SSL/TLS 安全通道。在 System.Net.HttpWebRequest.GetResponse() 在 ....

我已经为 X.509 创建了一个行为并为端点创建了一个绑定(bind),请参见下文。我究竟做错了什么?我会从使用 wsHttpBinding 中受益吗?

<behaviors>
<endpointBehaviors>
<behavior name="CertBehaviour">
<clientCredentials>
<clientCertificate findValue="MyCertCN" storeLocation="LocalMachine"
storeName="My" x509FindType="FindBySubjectName" />
<serviceCertificate>
<authentication certificateValidationMode="PeerTrust" />
</serviceCertificate>
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>

...

<basicHttpsBinding>
<binding name="mySoapBinding">
<security mode="Transport">
<transport clientCredentialType="Certificate" />
<message clientCredentialType="Certificate" />
</security>
</binding>
</basicHttpsBinding>

...

<client>
<endpoint address="https://www.providers-site.se/na/na_epersondata/services/personpostXML"
behaviorConfiguration="CertBehaviour" binding="basicHttpsBinding"
bindingConfiguration="mySoapBinding" contract="webservice.NaPersonPostXMLWS"
name="personpostXML" />
</client>

我确实进行了跟踪。感谢 Mike Cheel! See trace here.

此跟踪是否意味着证书未被远程主机(提供者)接受? (第 67-71 行)(因为“AUTHENTICATE_REQUEST NOTIFICATION_CONTINUE”和“AnonymousAuthenticationModule”在证书认证后启动。)

CertificateMappingAuthenticationModule NOTIFY_MODULE_START RequestNotifications AUTHENTICATE_REQUEST
AUTH_START Authentication MapCliCert
AUTH_END Authentication
CertificateMappingAuthenticationModule NOTIFY_MODULE_END RequestNotifications AUTHENTICATE_REQUEST NOTIFICATION_CONTINUE
AnonymousAuthenticationModule NOTIFY_MODULE_START RequestNotifications AUTHENTICATE_REQUEST

最佳答案

确保您在 asmx 机器的受信任根存储中具有提供者站点服务的证书链。您可以通过在浏览器中输入 ur 来查找:

https://www.providers-site.se/na/na_epersondata/services/personpostXML

并查看其证书链。浏览器也会显示警告。

另一种临时解决证书错误的方法是试试这个:

ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => 
{
// put a breakpoint here
var tempSslErrors = sslPolicyErrors;
return true;
}

如果您查看 sslPolicyErrorsit 可能会给出一些指示。

关于c# - 基于 SSL + X.509 的 Web 服务返回 SSL/TLS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22871313/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com