javascript - 向浏览器请求模态以选择证书

标签 javascript java google-chrome ssl-certificate x509certificate

我在互联网上寻找了几天通过 Javascript 将证书安装在浏览器中的方法(与 Windows 上的工作方式相同)。或者一种在 Linux 中安装证书的方法(使用 java)。我听说过一个名为 WebCrypto 的库,所有浏览器都有,但我需要的方法在当今的浏览器中并没有得到最多的支持。

需要在浏览器中请求一个模式来选择安装在其上的个人证书。我需要 Javascript 中的触发器来执行此操作。或者用 Java 编写代码以获取安装在 Linux 操作系统中的证书。

示例:

https://www.startssl.com/Account

点击客户端证书登录

最佳答案

抱歉,您的要求无法实现(就您的需求而言)。

首先,仅当服务器请求客户端证书进行相互身份验证时,证书选择 UI 对话框可能会出现,也可能不会出现。

这里有两个问题:

  1. Web 浏览器可能决定不弹出该对话框。当用户证书存储中仅安装一个客户端证书时,可能会发生这种情况。换句话说,由浏览器(或其配置)显示或不显示证书选择对话框。

  2. 即使显示,它也会显示在客户端,并且不是 DOM 的一部分,因此,您无法通过 JavaScript 与证书选择对话框进行任何交互。

(1) 无法通过服务器配置来解决,因为这是您无法控制的客户端行为。

(2)可以通过调用支持Web的客户端接口(interface)(类似于Internet Explorer中的ActiveX控件)来解决,但必须有这样的支持,并且客户端必须同意允许这样的调用。不幸的是,没有通用的内置框架甚至可以在主要浏览器和操作系统上运行。最接近的是Java,但它不是内置的,客户端必须安装Java引擎。

关于javascript - 向浏览器请求模态以选择证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40591277/

相关文章:

javascript - 使用 D3 选择 none 是否有用,如何使用?

javascript - 带有 json 数据的 axios post 请求

java - 软件在 IDE 中的执行速度比在外部慢吗?

java - 如何通过maven在远程tomcat上自动部署?

javascript - window.customElements 在 Chrome 中未定义

javascript - 如何突出显示段落中的日期?

javascript - 在客户端上,如何下载图像,然后作为 POST 请求发送到第三方服务器?

java - 使用@Embedded 和@Id 的Hibernate 复合主键

google-chrome - Chrome : websocket connection not closed when browser closed

google-chrome - Chrome 仅适用于多 session 登录的第一个 session