在 Chrome 中发送带有客户端证书的 HTTP 请求

Posted

技术标签:

【中文标题】在 Chrome 中发送带有客户端证书的 HTTP 请求【英文标题】:Sending an HTTP request with client certificates in Chrome 【发布时间】:2017-03-21 10:29:46 【问题描述】:

我在 Azure 上有一个受 mutual authentication 保护的 API。服务器证书由 Azure 在内部处理:

我创建了一个自签名证书并将其添加到我的本地计算机的受信任的根证书颁发机构列表以及我的个人证书:

当尝试通过 Chrome(特别是 Chrome 应用邮递员)访问 API 时,我收到 403,表明我的请求没有与之关联的证书。

    我对这应该如何工作有误解吗? 可能是我错误地创建了客户端证书。我在网上阅读的所有内容都指向使用 OpenSSL 来创建这些,但是我在让它在 Windows 机器上运行并使用了各种其他工具时遇到了一些问题:MakeCert、PowerShell 的New-SelfSignedCertificate 和Self-Signed Certificate Generator。似乎都创建了证书,但我无法知道我是否正确创建了它们。 如果证书创建正确,如何让 Chrome 随请求一起提交证书?当我将证书添加到商店时,它不应该自动获取证书吗?

【问题讨论】:

【参考方案1】:

原来我必须在 chrome 中访问网站的根 url(即https://my_app_name.azurewebsites.net),chrome 会显示一个弹出窗口,允许我选择用于请求的证书。

【讨论】:

以上是关于在 Chrome 中发送带有客户端证书的 HTTP 请求的主要内容,如果未能解决你的问题,请参考以下文章

强制Chrome在TLS期间发送链中的所有证书

发送带有证书的 Windows Phone 推送通知?

如何发送带有 HttpRequestMessage 的证书?

https本地自签名证书添加到信任证书访问

Azure APIM:使用发送请求模式发送客户端证书

Chrome“带有证书错误的活动内容”