WCF HTTPS配置

昨天需要把做好的一个wcf服务发布到服务器站点下的一个虚拟目录中
发布过程遇到了一个问题:服务器上的环境是https,因此需要多对配置文件修改
于是在网上找啊找,遇到一个问题找一个问题,可是问题依然没解决。我在网上找到了一篇文章
一步步照着上面写的做。

http://www.codeproject.com/KB/WCF/7stepsWCF.aspx
http://www.codeproject.com/KB/WCF/WCFSSL.aspx

第一步在Binding中添加段
<security mode="Transport">
<transport clientCredentialType="None"/>
</security>

第二步将endpoint的地址改成https

第三将 serviceMetadata改成httpsGetEnabled

<serviceBehaviors>

<serviceMetadata httpsGetEnabled="true"/>

</serviceBehaviors>

最后,使用makecert添加证书,为iis站点添加服务器证书

makecert -r -pe -n "CN= compaq-jzp37md0 " -b 01/01/2000 -e 01/01/2050 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr
 localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12

就酱紫本地环境搭建起来了,也可以正常运行,本来想把配置文件搬到服务器上就米问题了,可是,一刷页面,依然报错

弄了一天,配置改来改去,还是报错。

The protocol 'https' is not supported.

网上搜索说要确定iis是否支持https,于是我又弄了个静态页面,放在iis站点下
发现可以正常访问,那么https是没有问题的。

最后发现原来服务器上的https不是设置在iis上,而是在路由器,通过映射将https映射到http,囧,为毛要酱紫捏?

于是呼,把原来的配置文件复制回来,修改 endpoint的indentity
<identity>
    <dns value="服务器域名"/>
</identity>

然后再添加 baseAddresss
<host>
      <baseAddresses>
            <add baseAddress="https://服务器域名"/>
      </baseAddresses>
</host>

酱就搞定问题了,呼,马克一下,以防再犯同样滴错误,吼吼。

原文地址:https://www.cnblogs.com/Alex80/p/5318938.html