【问题标题】:WCF - SSL ServiceWCF - SSL 服务
【发布时间】:2011-06-28 22:59:23
【问题描述】:

我有一项使用 SSL 的服务。当我尝试浏览到该服务时,我收到以下错误:

The SSL settings for the service 'SslRequireCert' does not match those of the IIS 'None'. 

我的配置如下:

<security mode="Transport">
        <transport clientCredentialType="Certificate" />
      </security>

我正在使用 IIS Express,并且已选中“启用 SSL”(在 WebMatrix 中验证)。

有什么想法我还需要做什么吗?

【问题讨论】:

    标签: wcf wcf-security


    【解决方案1】:

    好的。看起来我需要更新 applicationhost.config 文件(在 IIS Express 中)。我为我的站点添加了一个位置并设置了 sslFlags="Ssl, SslAcceptCert, SslRequireCert"。这使我能够启用 SSL 身份验证。然后,当我尝试使用客户端访问该服务时,我收到一条消息,指出建立信任关系时出错。这是因为我的受信任人员文件夹中没有服务器的证书(或者它可能是客户端,我不确定服务和客户端是否在我的本地 PC 上)。完成此操作后,服务将运行,但是我们不想将证书提供给客户端,因此我最终使用了 TransportWithMessageCredential 安全模式。

    【讨论】:

      【解决方案2】:

      如下修改您的行为以包含 SSL;

      <behaviors>
        <serviceBehaviors>
          <behavior name="MyService">
            <serviceMetadata httpGetEnabled="True" httpsGetEnabled="True" />
            <serviceDebug includeExceptionDetailInFaults="False" />
          </behavior>
        </serviceBehaviors>
      </behaviors>
      

      并删除

      <security mode="Transport">
              <transport clientCredentialType="Certificate" />
            </security>
      

      这意味着您将使用证书身份验证

      【讨论】:

      • 当我这样做时,我收到消息:没有端点监听。如果我使用我的原始配置,但使用 TransportWithMessageSecurity 就可以了。
      • 可以在网址上浏览https吗?
      • 顺便说一句...我正在使用证书身份验证
      【解决方案3】:

      这与没有 mex 行完全没有关系,除非它配置不正确,在这种情况下删除它会产生效果,但 IIS 仍然可能给出相同的错误。

      确保 IIS 具有“需要 SSL”和“接受”(更简单)或“需要”用户证书的 SSL 设置 - 然后重新启动 IIS。尽管 IIS 表示已应用更改-根据我的经验,它们并非总是如此-或至少不会立即完成。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-30
        • 2019-04-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多