未初始化的密钥库:即使在加载后

时间:2018-07-03 21:22:13

标签: java-7 keystore java-6 jks

我有带有Eclipse Luna应用程序的Java 1.7,在该应用程序中尝试在加载Java密钥库后获取其别名。

KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
    ks.load(inputStream, password.toCharArray());
    //Print aliases below  
    Enumeration<String> aliases=null;
    try 
    {
    aliases = ks.aliases();
    } 
    catch (KeyStoreException e)
    {
    e.printStackTrace();
    }
    while (aliases.hasMoreElements()) 
    {
    String alias = aliases.nextElement();
    System.out.println("Alias is: "+alias);
    } 

我能够在Java 1.6的Eclipse Indigo中使用此功能,但是在Java 1.7中使用Eclipse Luno的相同代码却给我以下错误:

     java.security.KeyStoreException: Uninitialized keystore
    at java.security.KeyStore.aliases(KeyStore.java:1002)
    at sun.security.ssl.SunX509KeyManagerImpl.<init>(SunX509KeyManagerImpl.java:125)
    at sun.security.ssl.KeyManagerFactoryImpl$SunX509.engineInit(KeyManagerFactoryImpl.java:68)
    at javax.net.ssl.KeyManagerFactory.init(KeyManagerFactory.java:259)

使用1.7时,我看到aliases被设置为null。不知道这是否取决于环境,但是到目前为止,这是我能够弄清楚的。我需要使用Java 1.7,因为我需要使用Java 6不支持的TLSV1.2。
有什么想法吗?

0 个答案:

没有答案