c# - SSL WCF "Could not establish trust relationship for the SSL/TLS secure channel with authority ' 本地主机'

标签 c# wcf iis ssl

我有一个 WCF Web 服务,可以与 http 地址完美配合,但从那时起我就需要确保它可以通过 https 工作。

因为我使用的是 IIS 7,所以使用本指南可以很容易地使网站 https 绑定(bind)并运行 here

我打开了一个浏览器,得到了通常的安全提示,但是在我添加了异常(exception)之后一切正常。

然后我决定安装证书,因为证书是本地主机,服务器和客户端是同一台机器 - 让向导自动检测位置。

我回到我的 WCF 客户端代码,这是调用 IIS(现在是 https)中托管的 Web 服务的客户端,并在 2 个地方更改了绑定(bind)。

  1. 将端点地址更改为https
  2. 将安全模式更改为传输

运行代码然后得到这个错误:

“无法与权限为‘localhost’的 SSL/TLS 安全通道建立信任关系。”

最后我回到 IIS 并在 SSL 设置下,将设置更改为接受客户端证书,并尝试检查是否需要,两次都产生相同的错误。

知道如何解决这个问题吗?

更新 问题 1 已修复 - 这是因为证书已颁发给 machine_name 并且我在配置中使用了 localhost。

现在这行得通了,我遇到了另一个问题:

没有端点在 https://[machine_name]/Downloads.svc 监听可以接受消息。这通常是由不正确的地址或 SOAP 操作引起的。有关详细信息,请参阅 InnerException(如果存在)。”

内部异常 = “远程服务器返回错误:(404) 未找到。”

检查了 IIS 站点的 web.config,并将 DNS 绑定(bind)更改为 localhost。

仍然对此很感兴趣,但根据 Microsoft 的说法,这正是 WCF 应该很好的原因,因为它将传输与编码逻辑分开,但到目前为止我必须告诉你,它看起来真的很复杂。

更新

关闭windows防火墙,没有帮助...

这是我在 web.config 中的绑定(bind)

<basicHttpBinding>
     <binding name="IncreasedTimeout" 
              closeTimeout="12:00:00" openTimeout="12:00:00"
              receiveTimeout="12:00:00"
              maxReceivedMessageSize="1000000"
              sendTimeout="12:00:00">
       <security>
         <transport></transport>
       </security>
     </binding>
</basicHttpBinding>

最佳答案

您很可能需要添加明确的 base addresses对于这两种协议(protocol),WCF 知道您想要绑定(bind)到这两种协议(protocol)。尝试将此添加到您的 <service>定义:

<host>
    <baseAddresses>
        <add baseAddress="http://your-hostname-here/" />
        <add baseAddress="https://your-hostname-here/" />
    </baseAddresses>
</host>

此外,请确保您正在通过计算机的 WINS/DNS 名称访问该服务,否则您需要在 IIS 下向网站实例添加显式主机 header 。

关于c# - SSL WCF "Could not establish trust relationship for the SSL/TLS secure channel with authority ' 本地主机',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1741994/

相关文章:

c# - Rackspace 云文件获取容器中的对象 C#

c# - 防止使用过期密码打开 ODP.net 连接

wcf - C# : Instant Messager - Networking (. NET 远程处理/WCF/套接字)?

wcf - 如何在 node.js 中使用 WCF soap web 服务

c# - 在 asp.net core 中访问被拒绝的文件

php - 尝试使用MAIL函数时出现500错误

iis - 服务器对象错误 'ASP 0177 : 800401f3' Server.CreateObject 失败 - 仅当未登录服务器时

c# - 带有读/写变量的 SSIS 脚本任务不会在 ScriptResults.Failure 上停止

c# - USB 安装日期时间

c# - 在asp.net命令字段中添加onclick事件