php - 测试客户端浏览器中是否安装了客户端证书

标签 php ssl certificate

我想知道你们中是否有人知道是否可以在 javascript 或 php 中测试客户端是否在浏览器中安装了特定的客户端证书。

问题是我们安装了服务器证书,但要被客户端识别,他们需要 2 个客户端证书才能识别我们服务器证书颁发者的权限。我们想测试一下浏览器是否有这2个证书,如果没有,我们建议客户端在进入https模式之前下载它们...

有人可以帮忙吗?如果您知道,请详细说明您的答案。

最佳答案

您可以在客户端使用 javascript 从安全 (https) 源请求已知文件。如果请求失败,则表示客户端拒绝接受您的证书(或其他网络错误),此时您可以弹出一条消息,要求用户安装带有根证书链接的根证书。

这必须从非安全页面完成。否则用户可能会拒绝您的证书并且从不加载页面开始,因此您的 javascript 永远不会运行

这不能在 PHP 中完成,因为 php(服务器端)无法确定客户端浏览器是否安装了特定的根 ca

但是我不会这样做。取而代之的是获得适当的证书。

您似乎对 SSL 的一般工作原理了解不足。我建议花一些时间了解 SSL 的工作原理以及证书的使用方式。

直流

要了解如何使用 javascript 发送和接收 HTTP 响应,请阅读此页面。

http://www.w3schools.com/XML/xml_http.asp

它可以用来发送和接收任何文本数据,而不仅仅是xml。它很容易实现,但您必须注意浏览器版本问题。

直流

关于php - 测试客户端浏览器中是否安装了客户端证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1999602/

相关文章:

php - 通过 CSV 将客户数据库导入 RDS (MySQL)

javascript - JqG​​rid 表在编辑和保存任何行后重新加载

Cygwin 命令行中的 Curl SSL 错误

macos - 签署我的 Mac pkg 有效但安装失败?

java - Spring security - 启用 HTTPS - 客户端收到 403 未经授权

php - argv 和 argc 未定义或为空

php - 字符串转换为数组

Azure 故障排除 HTTP 500 : Validate user in memberhsip provider is not called

postgresql - 使用 SSL 和 Elixir 后端连接到 Azure 上托管的 PostgreSQL

ios - SDK 'Application' 中的产品类型 'iOS 6.0' 需要代码签名