我在 MS Edge 浏览器、Window 10 中遇到客户端证书问题。 基本上我的 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 页面,而导入证书后,您可以登录,并且 PHP 文件读取证书,该文件基本上输出使用 +StdEnvVars 收集的信息。
在 Microsoft Edge v25.10586.0.0 上,当我转到 https 位置时,我会看到证书选择窗口,但当我选择适当的证书时,我仍然收到 403 错误。这让我抓狂,因为除了 Edge 浏览器之外,它几乎可以在任何地方使用。任何人都可以帮我至少从哪里开始寻找?
当然,问题不仅仅是愚蠢...为了让 Edge 能够获取正确的证书并使用它,您必须重新登录或重新启动...
重新启动和所有其他建议对我的情况没有帮助。有用的是了解 Microsoft 开发人员未能考虑基本的用户体验指南。
客户端证书对话框显示一个证书、“确定”和“取消”按钮。仅当选择了证书时,“确定”按钮才会按预期工作。如果没有,它只是闪烁 - 至少向用户提供一些反馈,表明鼠标单击已被注册。但没有任何提示表明我应该从证书列表中选择一个条目。如果“确定”按钮在选择证书之前保持不活动状态,那就已经很有帮助了。但无论如何它都是活跃的。
我有 30 年使用 Windows 软件的经验 - 一切都变得更糟,尤其是可用性。
Microsoft EDGE 没有直接管理证书或导入证书的方法以避免证书错误。要允许 Microsoft-Edge 使用自签名证书,需要从命令行使用“certmgr.msc”工具将证书导入为受信任的证书颁发机构。
这可以按如下方式完成: