【问题标题】:IIS 7.5 site with SSL fails, site without SSL works带有 SSL 的 IIS 7.5 站点失败,没有 SSL 的站点可以工作
【发布时间】:2014-01-26 03:37:51
【问题描述】:

我正在使用 ASP.Net MVC 4 框架创建网站。我很难让 SSL 与那个(或任何类型的基本)网站一起工作。

我为相关域购买了 SSL 证书(姑且称之为“example.com”)。我已经进入 IIS,并为端口 443 配置了默认网站的 https 绑定。如果我打开该站点的非 SSL 版本,它就可以工作。 (在这种情况下,站点是股票的基本 IIS 起始页)。如果我尝试通过 https 访问该站点,它会超时并且无法显示该页面。

我已经使用 netsh 验证了端口 443 是打开的,并且没有其他任何东西在该端口上侦听。我已经仔细检查以确保 Windows 防火墙允许端口 443 上的流量,并且确实如此。如果我启动 Wireshark 并侦听端口 443 上的流量,然后尝试访问该网页,我会得到以下信息:

我不是解释这些结果的专家,但似乎某些东西仍在阻止出站连接。同样,常规 http 网页加载正常,但同一页面的 https 版本超时。

我正想尽办法解决这个问题。有什么想法吗?

【问题讨论】:

    标签: ssl https iis-7.5


    【解决方案1】:

    要么是某些东西在通往服务器的途中阻塞了端口 443 上的连接,要么是某些东西阻塞了响应。从wireshark截图中我看到服务器和你的客户端在不同的网络中,所以很明显之间至少有一个路由器,也许还有其他防火墙。您可以使用 traceroute 或 tracepath 检查您的请求传播了多远(例如,在一次尝试中指定端口 80,在另一次尝试中指定端口 443 并进行比较)以及过滤设备的位置。

    【讨论】:

    • 只是为了好玩,我暂时关闭了服务器上的防火墙。好像没有效果。
    • 如果我尝试在本地服务器上“telnet localhost 443”,我会收到一条消息说“正在连接到 localhost... 无法打开与主机的连接,在端口:443:连接失败'。这让我认为这是服务器上某处的一些配置设置问题。
    • 哦,我希望您在发布之前检查服务器是否在本地运行。如果服务器没有在端口 443 上运行,你将无法连接到它,当然:)
    • 我仔细检查了一切,果然,我已恢复 IIS 以显示该站点的旧版本。我把它换回来,我在服务器上得到以下结果: telnet localhost 80: 有效。远程登录 localhost 443:有效。 telnet [ip 地址] 80:有效。 telnet [ip address] 443:无法打开与主机的连接,在端口 443:连接失败。
    • 另外注意:如果我运行“netsh firewall show state”,端口 443 列在“所有网络接口上当前打开的端口”下,并且对 TCP 流量开放。
    【解决方案2】:

    这花了一些时间,但我终于弄明白了。

    默认情况下,似乎会阻止对 Amazon EC2 实例的 https 访问。这解释了为什么我在 IIS 中做了什么并不重要,它不起作用。这也可以解释为什么拥有正确的绑定、在防火墙上打开正确的端口以及我尝试过的任何其他方法都不起作用。这与亚马逊有关,以及他们最终如何进行配置。

    为了启用端口 443 上的流量,我执行了以下操作:

    1. 在 Amazon Web 控制台 (https://console.aws.amazon.com/ec2) 中,单击左侧的安全组链接
    2. 在您的实例正在运行的安全组下,设置新的入站规则以允许来自任何 IP 的 HTTPS 流量。
    3. 设置新的出站规则以允许 HTTPS 流量到任何 IP。

    没有必要删除/重新创建/重新启动实例。应用规则后,我尝试在本地计算机上的浏览器中访问 https 站点,并且成功了。

    Steffen,感谢您的帮助。

    (相关:HTTPS setup in Amazon EC2

    【讨论】:

      猜你喜欢
      • 2018-09-30
      • 1970-01-01
      • 2016-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多