SSL 客户端证书 Microsoft Edge

SSL Client certificate Microsoft Edge

我在 MS Edge 浏览器中遇到客户端证书问题,Window10。 基本上我的 PKI 结构如下:

RootCA(自签名 4096)-> 中间 CA(由 RootCA 2048 签名)-> 一个服务器证书,一个客户端证书(均由中间 CA 签名)

使用以下 SSL 选项设置 Apache

SSLCertificateFile - cert generated by Intermediate CA 2048

SSLCertificateKeyFile  - keyfile of above cert

SSLCACertificateFile  - Cert of my Intermediate CA chained with
RootCA cert

SSLCARevocationFile - Crl list generated by Intermediate CA

SSLVerifyClient require 

SSLVerifyDepth 10

SSLOptions +StdEnvVars

作为 PKCS#12 链文件生成的客户端证书。

现在,使用 Firefox、Chrome 和 Internet Explorer 11 进行了测试,一切都按预期工作 - 如果没有证书,您将获得 403 页面,而导入证书后,您可以登录并由 [=23 读取证书=] 基本上输出使用 +StdEnvVars 收集的信息的文件。

在 Microsoft Edge v25.10586.0.0 上,当我转到 https 位置时,我获得证书 selection window,但是当我 select 适当的证书时,我仍然收到 403 错误.这让我抓狂,因为除了 Edge 浏览器外,它几乎可以在任何地方使用。任何人都可以至少帮助我从哪里开始寻找?

当然,问题不仅仅是愚蠢...为了让 Edge 能够获取正确的证书并使用它,您必须重新登录或重新启动...

Microsoft EDGE 没有直接管理证书或导入证书以避免证书错误的方法。要允许 Microsoft-Edge 使用自签名证书,必须从命令行使用“certmgr.msc”工具将证书导入为受信任的证书颁发机构。

这可以按如下方式完成:

  • 点击红色证书错误信息查看失败的证书
  • 点击查看证书
  • 单击导出到文件(任何位置,foo.crt)
  • 启动 cmd shell 并键入命令“certmgr.msc”以打开证书向导
  • 从菜单栏 select“操作”>“所有任务”>“导入...”
  • 将出现一个弹出窗口 window,询问“存储位置”Select 当前用户或本地计算机。单击下一步。
  • 将出现一个新的弹出窗口 window 询问文件名:浏览并 select 您导出的证书文件,foo.crt 然后单击打开。
  • 弹出窗口现在将包含证书文件的完整路径,foo.crt。单击下一步。
  • 将出现一个新的弹出窗口 window,要求您允许 Windows 根据证书选择“证书存储”,或允许您手动指定证书存储。 Select 手动选项,“受信任的根证书颁发机构”。单击下一步。
  • 最后一个弹出窗口将出现“正在完成证书导入向导”。查看设置并单击“完成”。
  • 您应该会收到“导入成功”消息。
  • 关闭导入向导应用程序并在 EDGE 浏览器中再次尝试 URL。如果这有效,您将不会收到证书错误并且页面将正常加载。