IIS 503 "Service Unavailable" 通过 HTTPS,HTTP 工作正常

IIS 503 "Service Unavailable" over HTTPS, HTTP works fine

我在 IIS 7.5 中有一个 运行ning 网站。当我通过 HTTP 访问网站时,一切正常。当我 运行 通过 HTTPS 访问站点时,我 立即 收到 HTTP 503 错误 "Service Unavailable"。站点 self-generated/self-signed.

上使用的 SSL 证书

以下是我看到的针对类似问题的解决方案适用于这种情况:

BretB 在 this blog had the answer and linked to this Microsoft Blog 上的评论者 Chad Cothern。这种情况下的问题是端口 443 上的所有内容都已保留并且 "prevents W3SVC from obtaining the rights to listen on port 80 when it tries to start the site. Furthermore, applications that run in IIS do not need explicit reservations to run, only non-IIS applications have to reserve a URL namespace if they want to use HTTP to listen for requests."

以下是确定这是否是问题所在以及解决方法的步骤:

  1. 打开命令提示符
  2. 运行: netsh http show urlacl url=https://+:443/
  3. 如果有问题,那就是你的问题。端口 443 已完全保留并阻止 IIS。
    • 如果需要为 IIS 之外的应用程序 运行 保留端口 443,则需要使用应用程序路径注册它(即 http://+:443/appPath
    • 如果那里什么都没有,那么这可能不是问题所在。无需继续。
  4. 运行: netsh http delete urlacl https://+:443/
  5. 再次尝试 运行 您的应用程序。

请注意,您还可以使用此方法检查端口 80 或任何其他端口。例如,如果保留端口 80 而未保留 443,则通过 HTTPS 的站点可以工作,而 HTTP 则不能。

当我在 Firefox 中检查控制台时,我遇到了类似的问题,通过 HTTPS、HTTP 获取“503“服务不可用””。 IIS 端的一切看起来都很好:SSL 证书、端口、站点 运行 等。我检查了调制解调器端口并意识到它需要启用端口 443 转发。只有端口 80 被转发。但是因为我使用的是 CenturyLink 品牌的调制解调器,所以路由器的远程 GUI 管理正在使用该端口。

经验教训,如果您使用的是 CenturyLink 或其他公司品牌的路由器,可能同样适用。根据此 link 中的答案 here,执行:

常见错误:“定义的端口或端口范围正在被另一个端口转发或应用程序规则使用。”

如果端口 443 已被路由器的远程 GUI 管理占用。要释放该端口:

  1. 登录WiFi路由器。
  2. 进入高级部分。
  3. 单击“远程管理”下左侧菜单中的“远程 GUI”。
  4. 启用远程 GUI 并将端口更改为 443 以外的端口(例如 4433),然后保存。
  5. 如果不想启用,请禁用远程 GUI,然后保存。

结论:

这解决了我在 HTTPS 上的“503“服务不可用””问题。需要启用端口 443。