设置 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 获取详细步骤。
【讨论】:
感谢您的回答,我没有考虑过使用 IIS 管理器连接到 Azure Web 应用程序。但是,当我将站点设置为接受客户端证书时,我无法再通过 https 访问我的站点,因为我收到了 HTTP 500.0 - 内部服务器错误消息,其中包含以下相关的详细错误信息:详细错误信息:模块 IIS Web 核心通知BeginRequest 处理程序静态文件错误代码 0x80070005 我已经更新了答案。好像现在azure不支持了 谢谢,这似乎是一个问题......同时我正在考虑使用 OWIN 从请求数据中获取客户端证书。我可以看到一个名为“ssl.LoadClientCertAsync”的密钥,我可以用它来检索证书的值...以上是关于设置 Azure Web App 以接受客户端证书的主要内容,如果未能解决你的问题,请参考以下文章
nodejs azure web app给出http 431错误