如何在linux上使用java读取浏览器证书?通过使用keyStore.getInstance(“xyz”)

如何在linux上使用java读取浏览器证书?通过使用keyStore.getInstance(“xyz”),java,Java,我正在尝试使用代码读取已安装的证书 KeyStore ks = KeyStore.getInstance("Windows-MY") ks.load(null, null) Enumeration<String> enumeration = ks.aliases() while (enumeration.hasMoreElements()) { String string = (String) enumeration.nextElement() Sys

我正在尝试使用代码读取已安装的证书

KeyStore ks = KeyStore.getInstance("Windows-MY")  
ks.load(null, null)    
Enumeration<String> enumeration = ks.aliases()  
while (enumeration.hasMoreElements()) {    
String string = (String) enumeration.nextElement()    
System.out.println(string)   
}  
KeyStore ks=KeyStore.getInstance(“Windows MY”)
ks.load(null,null)
枚举=ks.aliases()
while(枚举.hasMoreElements()){
String=(String)枚举.nextElement()
System.out.println(字符串)
}  

这段代码列出了windows上安装的证书,但linux上没有?还尝试更改密钥库提供程序

我不知道你说的“阅读浏览器证书”是什么意思。
您正在尝试从默认Java密钥库读取证书吗?你的目标是什么

getInstance(..)实例化具有特定类型(例如JKS)的密钥库。当您想要读取特定密钥库时,需要指定密钥库的路径并使密钥库实例加载该文件

有关示例和更多详细信息,请参见

编辑:澄清问题后更新答案

有关在Linux中读取浏览器密钥库的更多信息,请访问:


  • 尝试使用NSS的
    libsoftokn3.so

    见我的答案,“方法1”


    关键是找到libsoftokn3.so的位置,并将其用作libfile来构造配置文件,然后是密钥库。

    您可以获得默认类型。 请尝试下面的代码

    KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
    

    您试图在命令行/服务器应用程序或小程序中读取证书吗?在小程序中。谢谢@Bert Jan Schrijveralright,你的用例是什么?为什么您需要访问已安装的证书?用于数字签名登录身份验证。对于我的应用程序。你找到解决方案了吗?我的问题是,我想列出用户在linux系统上安装的证书。没有具体的证书详细信息。我已经编辑了我的帖子,请检查一下。谢谢@bert jan