通过 SSL 调用 Web Api 时出现 403 禁止错误

Posted

技术标签:

【中文标题】通过 SSL 调用 Web Api 时出现 403 禁止错误【英文标题】:403 Forbidden Error when calling Web Api over SSL 【发布时间】:2021-12-26 17:44:06 【问题描述】:

我有一个在 IIS 上运行的标准 C# Web Api,它有一个自定义 AuthorizeAttribute 以通过请求标头变量中的键正确授权调用。最近,我的一个客户通过 SSL 调用 API 开始失败,并出现 403 Forbidden 错误。他调用非SSL url时成功。

相同的调用 - 相同的 url、api 密钥等在我的机器上通过 SSL 完美运行,我的其他客户端都没有遇到任何问题。这个特定客户可能有什么问题?我已经检查了一些基本的东西,比如他的客户端机器时间设置等等。不知道这是否可能是某种证书相关的问题?

【问题讨论】:

当您的客户端调用 API 时,您是否检查了请求标头中的密钥是否存在于服务器上?也许客户公司的公司代理会删除自定义请求标头 【参考方案1】:

尝试以下方法:

1- 检查他机器上的代理

2- 由于 SSL 用于保护数据和安全,因此数据不应以服务器上的方式更改。机器上的病毒可能会改变它(我的一个客户也有同样的问题)确保他的系统是干净的

3- 考虑以其他方式调用 API,例如(邮递员、浏览器...)

根据你写的清楚,他的机器有问题。如果你发现问题也很高兴告诉我

【讨论】:

显然没有代理,呼叫故障转移邮递员并通过他们的应用程序。我可以看到调用确实通过 SSL 访问了我的应用程序,但缺少所需的标头密钥。但是通过 http 的相同调用可以正常工作。

以上是关于通过 SSL 调用 Web Api 时出现 403 禁止错误的主要内容,如果未能解决你的问题,请参考以下文章

尝试在 Web API 请求上检索 Azure Blob 时出现 403 错误

在局域网中的其他计算机上使用 Web API 时出现 403 禁止访问被拒绝错误

尝试使用 Spotify Web Api 将歌曲添加到另一个协作播放列表时出现 403 禁止错误

如何解决安装IIS时出现HTTP错误403禁止访问?

从服务器而不是浏览器访问 API 时出现 403 错误

通过python进行请求时出现SSL证书错误