c# - WCF 客户端证书身份验证,服务 'SslRequireCert' 的 SSL 设置与 IIS 'Ssl, SslNegotiateCert' 的设置不匹配

标签 c# wcf iis ssl

我有一个网站将被一些客户端调用,这些客户端将使用客户端证书进行身份验证,而其他客户端则不会,因此我必须将客户端证书的 iis 设置设置为允许。这在 Windows 7 专业版上运行良好,但是当我尝试在使用 Windows 7 的虚拟服务器设置上运行它时,出现以下错误

服务“SslRequireCert”的 SSL 设置与 IIS“Ssl、SslNegotiateCert”的设置不匹配

两个环境之间的所有 iis 设置似乎都相同

杰里米

最佳答案

这可能是由于 IIS 设置与 WCF 配置不匹配造成的。

    <binding name="TransportWithCertificate">
      <security mode="Transport">
        <transport clientCredentialType="Certificate" />
      </security>
    </binding>

错误信息非常明确。它表示“SSLRequireCert”或 clientCredentialType="Certificate"与 IIS 设置的“Ssl、SslNegotiateCert”或客户端证书不匹配:接受。要在 IIS 中修复此问题,您需要 ClientCertificates: Require。

在我的案例中,Server 2008 R2/IIS 7.5 的行为与 Windows 7/IIS 7.5 和 Windows 8.1/IIS 8.5 不同。在这两个桌面操作系统版本中,我都可以运行需要 SSL/客户端证书的应用程序:接受。

但在 Server 2008 R2/IIS 7.5 上,页面不会加载并显示错误 SSL 设置服务“SslRequireCert”与 IIS“Ssl、SslNegotiateCert”的设置不匹配 Changing to Client certificate: Require 解决了这个问题。

关于c# - WCF 客户端证书身份验证,服务 'SslRequireCert' 的 SSL 设置与 IIS 'Ssl, SslNegotiateCert' 的设置不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17087664/

相关文章:

c# - 这个傅立叶变换实现有什么问题

c# - 是否可以将 Windows 服务添加到现有项目中?

ASP.NET MVC Urls 和 IIS 集成 Windows 身份验证

iis - 如何在 ASP vNext 中使用 session

asp.net - 为什么 Azure Web 角色上的 IIS 需要如此频繁地重新编译 ASP.NET 应用程序?

c# - RFC-1123 的日期时间给出了不准确的时区

c# - 我想以编程方式在 C# 中生成对 DataGridView 行的单击

wcf - WCF 服务可以有多少个 ServiceContract?

c# - 如何通过 WCF 服务更新实体

C#泛型问题