![无法在端口 443 上启动 IIS 网站,尽管 netstat 显示 443 上没有任何监听](https://linux22.com/image/1488227/%E6%97%A0%E6%B3%95%E5%9C%A8%E7%AB%AF%E5%8F%A3%20443%20%E4%B8%8A%E5%90%AF%E5%8A%A8%20IIS%20%E7%BD%91%E7%AB%99%EF%BC%8C%E5%B0%BD%E7%AE%A1%20netstat%20%E6%98%BE%E7%A4%BA%20443%20%E4%B8%8A%E6%B2%A1%E6%9C%89%E4%BB%BB%E4%BD%95%E7%9B%91%E5%90%AC.png)
我必须将我的 IIS 网站绑定到端口 443。我的情况不允许使用其他端口。在 IIS 管理器中,我已绑定默认网站到端口 443:
但是当我尝试启动该网站时,它失败了:
但是netstat -anob
没有显示在端口 443 上有任何内容被监听。SysInternals 的 TCPView 和 Windows Resource Monitor 都与 netstat 一致。
我如何才能找出正在监听端口 443 的内容并将其停止,以便我可以在 443 上运行我的网站?
我在 Windows Server 2012 R2 上使用 IIS 8.5。
2016年3月30日更新事实证明我可以毕竟使用 443 以外的端口。所以启动网站对我来说不再是问题。很抱歉浪费大家的时间;沟通出现了错误。但我将这个问题保留下来,以防其他人遇到类似的问题。当 netstat 显示没有任何东西在监听该端口时,知道如何找出阻止 IIS 在特定端口上启动的原因可能仍然很有用。
答案1
IIS 不允许您在端口 443 上启动 HTTP(没有 s)站点。
在您的屏幕截图中,在“站点绑定”窗口中,类型是http,将无法运行。
以下是需要做的事情:
从 IIS 向导创建自签名证书。(因为如果没有证书,IIS 也不允许您打开 HTTPS 网站)除非您使用 PowerShell 命令,否则将导致端口 443 正在使用的错误。
“添加网站”,绑定为“https'并选择您的自签名证书。 截图详细说明了一切
网站运行完美!
补充内容供参考:
我遇到了同样的错误。和楼主你的情况一样。但考虑到 IIS 不允许你在没有证书的情况下在端口 443 上打开网站,我该如何创建网站呢?我使用的是 PowerShell 命令:
New-WebSite -Name my-website -Port 443 -HostHeader my-website -PhysicalPath "$env:systemdrive\inetpub\wwwroot\my-website"
这会为你创建一个站点,但它不会开始自动启动,如果您尝试通过 PowerShell 启动它,您将收到此错误:
Start-WebSite : Cannot create a file when that file already exists. (Exception from HRESULT: 0x800700B7)
或者如果您通过 IIS 的 GUI 手动启动它,您将收到错误 443 正在使用中,而这在现实中完全是错误的。
答案2
确保您的服务器机器上安装了 openssl。
openssl s_client -connect loalhost:443 GET / HTTP/1.1 Host: localhost
输入enter
两次,您将获得 HTTP GET 响应,您可以在本地机器上找到网页列表。如果这有帮助,请告诉我。我也有一个不同的解决方法。