403 禁止错误 - IIS 8

403 Forbidden Error - IIS 8

我在 Windows 2012 服务器上使用 IIS 8。我有一个站点设置为自定义端口 (4443) 上的 HTTPS 流量的 API。我已经安装了通配符 SSL 证书,它运行正常。我们的网络防火墙在内部将端口 4443 上的所有 public 入站流量路由到此服务器,然后由 IIS 处理。

从服务器本身来看,一切正常。我没有使用本地主机,也没有主机文件条目在内部循环回流量。去 https://api.blahblahblah.com:4443 returns 我想要的。

但是,从网络外部,我收到 403 Forbidden 错误。我知道流量正在到达服务器,因为我得到了我在该服务器上设置的正确的自定义 "X-Powered-By" 响应 header。

我已经尝试设置包含站点文件的文件夹的权限以允许完全控制"Everyone",但没有成功。该站点为用户 "IUSR" 启用了匿名身份验证。目录浏览已禁用。

这是怎么回事?我假设这是文件系统的权限错误,但我认为拥有 Everyone 权限可以消除这种情况。此外,就经过身份验证的 session 或其他内容而言,内部流量(来自服务器本身)没有什么特别之处。这只是一个没有花里胡哨的简单请求。

请帮忙!谢谢

=======更新=======

这是一个显示子状态代码 16 的示例日志条目:

2018-02-08 17:56:58 10.1.10.11 GET /favicon.ico - 4443 - 184.4.143.229 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/63.0.3239.132+Safari/537.36 https://api.blahblahblah.com:4443/data/countyList 403 16 2148204809 97

显然这是客户端证书信任问题?经过进一步测试,我可以在另一台设备上毫无问题地访问该站点,而不是我的主要开发 PC。

我刚刚在 SSL 设置中将网站设置为忽略客户端证书,它再次按预期工作。

由于多种原因,可能会出现 403 错误。您能否分享子状态代码。您可以在 IIS 日志中找到它。默认位置 - C:\inetpub\logs\logfiles\w3svc_websiteID.

获得子状态代码后,请在此处分享。

您也可以按照这篇文章抓取 FREB 日志 - https://docs.microsoft.com/en-us/iis/troubleshoot/using-failed-request-tracing/troubleshooting-failed-requests-using-tracing-in-iis

只需修改本文中的第 10 步,不要取消选中您的情况中的任何内容(保留所有默认值)。这将清楚地告诉您 IIS 管道中发生了什么。

如果是 403.14,只需在 IIS 中添加默认文档即可。