javascript - 如何在java中读取用户证书

标签 javascript java linux x509certificate websphere-portal

有没有办法读取安装在客户端浏览器中的可信证书?我想阅读 issued to 和 issued by 等信息。我正在使用 Java 来运行 web-sphere 门户,使用 web-sphere 来运行应用程序。

我已经编写了以下用于读取证书的代码。当代码执行时,我得到空值。

public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {

String cyphersuite = (String) req.getAttribute("javax.servlet.request.cipher_suite");        
        if (cyphersuite != null) {
            X509Certificate[] x509=(X509Certificate[])req.getAttribute("javax.servlet.request.X509Certificate");
            System.out.println("x509   "+x509);         
        }
}

最佳答案

你不能。在编写服务器代码并检查请求对象时,您会阅读客户端选择发送的信息。浏览器永远不会将任意证书信息发送回它们正在连接的服务器。如果浏览器要发送此类信息,服务器可以执行诸如识别用户访问过的其他站点之类的操作。这会侵犯隐私。

此外,如果客户端尝试连接到您的服务器但无法验证证书,它将永远不会创建与您的应用程序的连接。您上面的代码执行的唯一方法是用户已经信任该证书。那时没有理由进行任何类型的检查。

关于javascript - 如何在java中读取用户证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39591804/

相关文章:

java - Java/Guava 异步编程

linux - 所有接口(interface)上的 UDP 广播

java - 在 Java 1.6 File.renameTo() atomic on linux 中?

c++ - 一台 Linux 机器上的段错误,但另一台使用 C++ 代码的机器上没有

javascript - 字符串拆分不起作用

javascript - Onload清除所有文本字段jquery js

java - 什么是适合 Java EE 应用程序的二级缓存?

Java Spring 应用程序 + Tomcat : JVM doesn't make memory dump

javascript - 创建自定义 setTimeout() 函数

javascript - GSM 扩展无法在 Web 浏览器上播放