Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有SSL的IIS 7.5站点失败,没有SSL的站点正常工作_Ssl_Https_Iis 7.5 - Fatal编程技术网

具有SSL的IIS 7.5站点失败,没有SSL的站点正常工作

具有SSL的IIS 7.5站点失败,没有SSL的站点正常工作,ssl,https,iis-7.5,Ssl,Https,Iis 7.5,我正在使用ASP.NETMVC4框架创建一个网站。我很难让SSL与那个或任何类型的基本站点一起工作 我为有问题的域购买了一个SSL证书,我们称之为example.com。我进入了IIS,并为端口443的默认网站配置了https绑定。如果我打开站点的非SSL版本,它就会工作。在本例中,站点是库存的基本IIS起始页。如果我试图通过https访问该站点,它将超时并且无法显示页面 我已经使用netsh验证了端口443是打开的,并且在端口上没有其他侦听内容。我已经仔细检查了一下,以确保Windows防火墙

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

我为有问题的域购买了一个SSL证书,我们称之为example.com。我进入了IIS,并为端口443的默认网站配置了https绑定。如果我打开站点的非SSL版本,它就会工作。在本例中,站点是库存的基本IIS起始页。如果我试图通过https访问该站点,它将超时并且无法显示页面

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

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


我正绞尽脑汁想弄明白这件事。你知道这里发生了什么吗?

可能是有什么东西阻止了443端口连接到服务器,或者是有什么东西阻止了响应。从wireshark屏幕截图中,我看到服务器和客户机位于不同的网络中,因此很明显,这两个网络之间至少有一个路由器,可能还有其他防火墙。您可以使用traceroute或tracepath检查请求的传输距离,例如,在一次尝试中指定端口80,在另一次尝试中指定端口443,并进行比较,以及过滤设备可能位于何处。

这需要一些挖掘,但我最终找到了答案

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

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

在Amazon web控制台中,单击左侧的安全组链接 在实例正在运行的安全组下,设置新的入站规则以允许来自任何IP的HTTPS通信。 设置新的出站规则以允许HTTPS通信到任何IP。 没有必要删除/重新创建/重新启动实例。一旦我应用了这些规则,我就尝试在本地机器上的浏览器中点击https站点,结果成功了

Steffen,谢谢你的帮助


相关:

为了好玩,我暂时关闭了服务器上的防火墙。如果我试图在本地服务器上telnet localhost 443,我会收到一条消息说“连接到localhost。。。无法在端口443上打开与主机的连接:连接失败'。这让我觉得这是服务器上某个地方的配置设置问题。哦,我希望您在发布之前检查服务器是否在本地运行。如果服务器未在端口443上运行,您将无法连接到它,这是肯定的:我仔细检查了一些内容,并且确实恢复了IIS以显示站点的旧版本。我将其重新切换,在服务器上得到以下结果:telnet localhost 80:works。telnet localhost 443:工作正常。telnet[ip地址]80:工作正常。telnet[ip地址]443:无法在端口443上打开与主机的连接:连接失败。另一个注意事项:如果运行netsh firewall show state,则端口443列在所有网络接口上当前打开的端口下,并对TCP流量开放。