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

标签 ssl ssl-certificate client-certificates mutual-authentication

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

Server Certificate

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

Client Certificate

当尝试通过 Chrome(特别是 Chrome App Postman)访问 API 时,我收到 403 指示我的请求没有与之关联的证书。

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

最佳答案

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

关于ssl - 在 Chrome 中发送带有客户端证书的 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40476035/

相关文章:

c# - 带有客户端证书的 HttpWebRequest 总是出现错误 "The request was aborted: Could not create SSL/TLS secure channel."

vba - 为 ServerXMLHTTP.SetOption 识别正确的客户端证书

ssl - SSL virtualMIN和wordpress网站使用的困惑

tomcat - 公共(public)和私有(private) IP 的自签名证书 (Tomcat 7)

java - 如何从 pem 文件加载公共(public)证书?

java - 进行 POST 调用以验证 Microsoft Dynamics CRM 时出现证书错误

WCF 通过 HTTPS -> 代理 -> HTTP

node.js - 如何将 .crt 字符串转换为 .der 证书二进制文件并将其保存到 Redis 中?

java - 如何在java中禁用SSLContext中的通用名称检查?

java - `p12` 文件在 Firefox RestClient 中有效,但在 WebSphere 中无效