在我们的生产环境中,网站在HTTPS下运行,SSL在负载均衡器上终止,并将流量作为HTTP传递到IIS服务器。
站点内有各种内部和第三方组件和控件,其中一些使用类似于.NET System.Web.HttpRequest.IsSecureConnection
属性的机制,它只查询HTTPS
服务器变量以返回其结果。由于从负载均衡器到Web服务器的连接是HTTP,因此这些方法返回不正确的值并导致某些组件失败。例如,组件可能会将用户指向HTTP URL而不是HTTP文件的HTTPS,并导致浏览器不加载混合内容。
为了调试这些组件并开发变通方法,我需要在我的开发机器上重新创建这个场景。我的问题是,有一种简单的方法可以为Visual Studio / IIS Express开发环境模拟外部终止的SSL连接吗?
答案 0 :(得分:2)
我找到了使用Port Forwarding Wizard的方法。
创建单个TCP映射,其中侦听端口设置为备用端口(例如443),目标为具有Web服务器端口的本地主机(例如80)。将其他所有内容保留为默认值,但请进入SSL加密并在CA Center中生成根密钥和证书。完成后,选择启用SSL加密并选择服务器。生成私钥文件,Cert Req文件和证书然后bob是你的叔叔,你终止SSL转发到你的本地IIS Express服务器:只需启动你的端口映射,然后用你的网络浏览器连接到https://localhost(指定端口,如果它不是443)。