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

时间:2016-02-26 09:07:51

标签: java

尝试使用代码

读取已安装的证书
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)   
}  

此代码在Windows上列出已安装的证书,但在linux上没有?尝试通过更改密钥库提供程序。

3 个答案:

答案 0 :(得分:1)

我不确定你对“阅读浏览器证书”的意思。 您是否尝试从默认Java密钥库中读取证书?你的目标是什么?

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

有关示例,请参见http://www.java2s.com/Code/Java/Security/RetrievingaKeyPairfromaKeyStore.htm,有关详细信息,请参见https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html

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

您可以在以下位置找到有关在Linux中读取浏览器密钥库的更多信息:

  1. http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/security/keystores.html
  2. https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/JSS
  3. applet with SunMSCapi not working in linux
  4. http://forums.mozillazine.org/viewtopic.php?p=12037571

答案 1 :(得分:0)

尝试使用NSS的libsoftokn3.so

请参阅我的回答here,&#34;方法1&#34;。

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

答案 2 :(得分:0)

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

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