Java多个密钥库检查订单

时间:2013-08-02 11:55:39

标签: java ssl javamail keystore self-signed

我想知道有没有办法检查默认密钥库,如果在指定的密钥库中找不到必要的密钥或如何设置密钥库检查顺序。

例如 - 我有两个密钥库:

  • 全局java默认密钥库(如cacerts)
  • “Folder1 / mykestore.jks”,其中包含我上传的自签名证书。

我在我的程序中设置了属性:

System.setProperty("javax.net.ssl.keyStore","Folder1/mykeystore.jks");

程序试图从mykeystore.jks连接证书,但没有找到它,因此抛出异常。现在我想让我的程序检查全局默认密钥库或任何其他密钥库(如果存在)。

我想在我的应用程序中执行此操作,用户可以在其中定义一些邮箱并可以上载自签名证书。应用程序适用于自签名证书,但不适用于具有官方证书的公共邮箱(如GMail),因为它们在mykestore.jks中不存在。 (当我尝试连接时没有指定keyStore属性,它连接没有任何问题)

可能最简单的方法是:

try{
  System.setProperty("javax.net.ssl.keyStore","Folder1/mykeystore.jks");
  store.connect(host,login,password)
catch{
  //Set default keystore
  //try store.connect() again
}

但问题是我不知道如何设置默认的java密钥库(它是一个gralils应用程序,我不知道默认密钥库的路径)。

也许还有另一个更好的方法,你可以推荐我吗?

此致 阿图尔

1 个答案:

答案 0 :(得分:1)

最简单的方法是从JDK中复制默认密钥库,并将其用作应用程序的初始密钥库,并根据需要为其添加更多证书。