在Web服务上启用HTTPS时出现403错误

时间:2016-02-25 09:06:56

标签: web-services web-config

这是我第一次这样做并且遇到了一个问题。我想即将到来,但我需要众神的帮助!(那就是你们!)。

我有一个很棒的网络服务(WCF)。我现在需要为此添加SSL证书。我已将SSL证书安装到IIS上并将其绑定到Web服务。

我还在web.config

中添加了以下内容
<endpoint address="" behaviorConfiguration="WebBehavior" binding="webHttpBinding" contract="MyWebService.IService1" />
    <endpoint address="https://myDomain.co.uk/Service1.svc" binding="wsHttpBinding" bindingConfiguration="TransportSecurity" contract="MyWebService.IService1">
      <identity>
        <certificateReference storeName="My" storeLocation="LocalMachine" x509FindType="FindBySubjectName" findValue="CertName" />
      </identity>

我也有以下绑定         

    <binding name="secureHttpBinding" allowCookies="true">
      <security mode="Transport">
        <transport clientCredentialType="Certificate" />
      </security>
    </binding>
  </webHttpBinding>

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

<protocolMapping>
  <add scheme="http" binding="wsHttpBinding" />
  <add scheme="https" binding="basicHttpBinding" />
</protocolMapping>

我的问题是当我将Web服务称为HTTP时,

当我将其称为HTTPS时,我收到403错误。我不知道是什么问题。

请帮助 在此先感谢

Alpesh

1 个答案:

答案 0 :(得分:0)

我找到了答案。

首先,终点应该只是以下几点。我删除了另一端的porint

<endpoint address="" behaviorConfiguration="WebBehavior" binding="webHttpBinding" bindingConfiguration="secureHttpBinding" contract="MyWebService.IService1" />

绑定应该是

<webHttpBinding>
  <binding name="secureHttpBinding" allowCookies="true">
  <security mode="Transport" />
  </binding>
  </webHttpBinding>

我删除了以下行

<transport clientCredentialType="Certificate" />

这解决了我的问题。我希望这有助于其他人。感谢