gpt4 book ai didi

c# - 在 HTTPS 情况下,服务器证书未使用 HTTP.SYS 正确配置

转载 作者:行者123 更新时间:2023-11-30 20:41:56 35 4
gpt4 key购买 nike

我需要使用第三方 WCF 服务。我已经在我的证书存储中配置了所需的证书,但是在调用 WCF 服务时出现以下异常。

https://XXXX.com/AHSharedServices/CustomerServiceJAXWSController 发出 HTTP 请求时发生错误.这可能是由于在 HTTPS 情况下服务器证书未正确配置为 HTTP.SYS。这也可能是由于客户端和服务器之间的安全绑定(bind)不匹配造成的。

我咨询了服务供应商,他们说从他们的角度来看一切都很好,其他人已经在使用这项服务了。他们提到当请求来 self 的 IP 地址时,他们的服务没有收到证书内容。他们将此监控到 wireshark 中,证书的长度为 0

以下是我的客户端配置。我在这里遗漏了什么吗?

            <?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<system.diagnostics>
<sources>
<source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
<add name="ServiceModelMessageLoggingListener">
<filter type="" />
</add>
</listeners>
</source>
</sources>
<sharedListeners>
<add initializeData="D:\Log\MessageLog.svclog"
type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp">
<filter type="" />
</add>
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="endpointBehavior">
<clientCredentials>
<clientCertificate findValue="XXX.XX.com" storeName="AddressBook"
x509FindType="FindBySubjectName" />
<serviceCertificate>
<authentication revocationMode="NoCheck" />
</serviceCertificate>
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<wsHttpBinding>
<binding name="wsBinding">
<security mode="Transport">
<transport clientCredentialType="Certificate" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="https://XXXX.com/AHSharedServices/CustomerServiceJAXWSController"
behaviorConfiguration="endpointBehavior" binding="wsHttpBinding"
bindingConfiguration="wsBinding" contract="ServiceReference1.CustomerServiceJAXWSController"
name="testService" />
</client>
<diagnostics>
<messageLogging logEntireMessage="true" logMalformedMessages="true"
logMessagesAtTransportLevel="true" logKnownPii="true" logMessagesAtServiceLevel="true"/>
</diagnostics>
</system.serviceModel>
</configuration>

最佳答案

我曾收到此错误,因为我的客户端使用的是 TLS 1.0 而不是 TLS 1.2。假设您安装了所有正确的 SSL 密码,您可以尝试更改您的请求以改为使用 TLS 1.2。在 .NET 中,您将在定义客户端后添加:

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;

一旦我切换到 TLS 1.2,错误就消失了。

关于c# - 在 HTTPS 情况下,服务器证书未使用 HTTP.SYS 正确配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31875529/

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