我希望我的
Java代码在一个密钥库中搜索服务器的CA证书…如果它无法找到特定的证书(我认为只有当我尝试通过LDAP连接到Directory Server时才会知道),它应该是在另一个密钥库中查找证书,我知道它的路径.
我试过这个:
System.setProperty(“javax.net.ssl.trustStore”,System.getProperty(“java.home”)“/ lib / security / cacerts”System.getProperty(“path.separator”)path / to / second / keystore) ;
但它似乎没有用.
只添加一个路径(它们中的任何一个)都可以工作,即如果找到证书则它会像魅力一样运行,否则就会失败.
所以我的问题是:
>是否有方法将多堆密钥库路径添加到javax.net.ssl.trustStore?
>如果不可能我应该如何编写我的代码(我要求算法),以便它在第一次搜索后不会抛出异常而失败?
附: :我对Java不太熟悉.
以下是我的代码的相关部分:
if(useSSL)
{
try
{
SSLContext se = SSLContext.getInstance("TLS");
Security.addProvider(se.getProvider());
}
catch(NoSuchAlgorithmException e) { }
System.setProperty("javax.net.ssl.trustStore", System.getProperty("java.home") + "/lib/security/cacerts");
com.org.ldap.LDAPSocketFactory ssf = new LDAPJSSESecureSocketFactory();
LDAPConnection.setSocketFactory(ssf);
}
try
{
lc = new LDAPConnection();
lc.connect( ldapServer, ldapPort);
lc.bind( ldapVersion, ldapUser, (userInfo[1]).getBytes() );
}
catch (LDAPException le)
{
le.printStackTrace();
}



