设置 Azure Web App 以接受客户端证书

Posted

技术标签:

【中文标题】设置 Azure Web App 以接受客户端证书【英文标题】:Set up Azure Web App to accept client certificates 【发布时间】:2018-05-12 08:28:10 【问题描述】:

我有一个 ASP.NET MVC Web 应用程序,我将它作为 Web 应用程序部署到 Microsoft Azure。在该应用程序中,我有一些 Web API 端点,只有当用户拥有正确的证书和允许的指纹时才能访问这些端点。但是,我还有其他端点(当然还有网站),无需客户端证书即可访问。

我知道set up the Azure Web App to require client certificate through a HTTPS connection 是有可能的。但是,如果我进行上述 REST API 调用

ARMClient PUT 订阅/订阅 ID/resourcegroups/资源组名称/providers/Microsoft.Web/sites/网站名称?api-version=2015-04-01 @enableclientcert.json -verbose

这将导致只有那些用户可以访问我的站点并使用具有客户端证书的 Web API 端点。

如果我打开本地安装的 IIS 管理器,我将有一个选项来接受客户端证书,而不是要求它们,如下图所示:

我的问题是如何设置我的 Azure Web 应用程序以接受(不需要)客户端证书?我搜索了这个网站和许多其他论坛,但我找不到以这种方式设置 Web 应用程序的方法。

【问题讨论】:

【参考方案1】:

更新:

我的问题是如何设置我的 Azure Web 应用程序以接受(不需要)客户端证书?

现在好像 azure 不支持了。我还找到了support optional client certificates for TLS mutual auth 反馈。现在它正在由 Azure 团队进行审查。你也可以投票。

我们也可以使用 IIS 管理器远程访问 Azure 网站进行设置,您可以从 blog 获取详细步骤。

**先决条件** >在 Window 客户端操作系统上 - [用于远程管理的 IIS 管理器][3] >在 Windows Server 上 - 确保您已安装 IIS 管理控制台。 请参阅 http://www.iis.net/learn/install/installing-iis-7/installing-iis-on-windows-vista-and-windows-7 中的第 6 步 - “IIS 管理控制台”是必需的功能.

【讨论】:

感谢您的回答,我没有考虑过使用 IIS 管理器连接到 Azure Web 应用程序。但是,当我将站点设置为接受客户端证书时,我无法再通过 https 访问我的站点,因为我收到了 HTTP 500.0 - 内部服务器错误消息,其中包含以下相关的详细错误信息:详细错误信息:模块 IIS Web 核心通知BeginRequest 处理程序静态文件错误代码 0x80070005 我已经更新了答案。好像现在azure不支持了 谢谢,这似乎是一个问题......同时我正在考虑使用 OWIN 从请求数据中获取客户端证书。我可以看到一个名为“ssl.LoadClientCertAsync”的密钥,我可以用它来检索证书的值...

以上是关于设置 Azure Web App 以接受客户端证书的主要内容,如果未能解决你的问题,请参考以下文章

Azure 中的客户端证书身份验证和 CA 证书

nodejs azure web app给出http 431错误

Azure Web 应用程序“ERR:带指纹的证书:...'在本地计算机证书存储中找不到。”

无法从Web应用程序访问Azure公共和私有证书

Azure Key Vault 是不是支持客户端证书?

如何设置IIS以验证客户端证书并将其作为http标头传递给后端?