You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java连接PKI认证TCPS JDBC地址报密钥库密码错误问题

Oracle JDBC TCPS连接报keystore密码错误问题

问题场景

对接使用TCPS协议的JDBC URL,已完成wallet配置,在keystore中导入了所需证书(已生成密钥对并完成公钥交换)。通过Java客户端发起JDBC连接时,抛出如下异常:

Caused by: java.io.IOException: keystore password was incorrect
    at java.base/sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:2159)
    at java.base/sun.security.util.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:221)
    at java.base/java.security.KeyStore.load(KeyStore.java:1473)

现有实现与配置

连接实现代码

Class.forName("oracle.jdbc.driver.OracleDriver");
OracleDataSource ds = new OracleDataSource();

ds.setURL("jdbc:oracle:thin:/@pkidb_ssl");
            
            
// ds.setURL("jdbc:oracle:thin:/@SAMPLEDB_RO");
Provider p;
p = new OraclePKIProvider();
Security.insertProviderAt(p, 3);
conn = ds.getConnection();

PreparedStatement ps = conn.prepareStatement("SELECT * FROM V$VERSION");    
ResultSet rs = ps.executeQuery();
rs.next();
String val = rs.getString(1);
System.out.println("Output: " + val);
rs.close();
ps.close();

System.out.println("Finished");

已配置JVM启动参数

-Djavax.net.ssl.keyStore="<path-to-jdk>/lib/security/cacerts"
-Djavax.net.ssl.keyStorePassword="changeit"
-Djavax.net.ssl.trustStore="<path-to-jdk>/lib/security/cacerts"
-Djavax.net.ssl.trustStorePassword="changeit"

可通过命令行正常访问上述配置的keystore查看内容,命令行验证时所用密钥库密码完全正确。

排查进展

初步排查方向为两种可能:一是JDBC引用了其他内置JVM实例的密钥库,二是Oracle JDBC存在独立的密码指定配置项。
经断点调试确认异常行为:额外配置-Doracle.net.wallet_password、-Doracle.net.wallet_location两个JVM参数后,连接逻辑实际优先读取oracle.net.wallet_location指定的wallet文件作为密钥库,而非javax.net.ssl.keyStore、javax.net.ssl.trustStore指定的路径;密码读取逻辑同理,未使用配置的keyStorePassword、trustStorePassword参数。

待解决问题

  • 如何修复当前连接抛出的keystore密码错误异常
  • 如何正确配置Oracle JDBC PKI连接所使用的密钥库及对应密码
  • 如何确认当前连接实际加载的keystore、trustStore路径,以及程序内部尝试使用的密钥库密码

内容的提问来源于stack exchange,提问作者Amit Mahajan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 16:57:17