【问题标题】:oracle.security.crypto.core.CipherException: Invalid padding string (or incorrect password)oracle.security.crypto.core.CipherException:无效的填充字符串(或不正确的密码)
【发布时间】:2018-11-21 02:58:27
【问题描述】:

我正在尝试使用下面列出的代码使用 SSL 侦听器端口访问数据库。

import java.security.Security;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class SSLTester
{
public static void main(String[] args)
throws Exception
{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Security.insertProviderAt(new oracle.security.pki.OraclePKIProvider(), 3);
String url = "jdbc:oracle:thin:@(DESCRIPTION = " +
"(ADDRESS_LIST = " +
"(ADDRESS = " +
"(PROTOCOL = TCPS)" +
"(HOST = <hostname>)" +
"(PORT = <port>)" +
")" +
") " +
"(CONNECT_DATA = (SERVICE_NAME = <servicename>))" +
")";

java.util.Properties info = new java.util.Properties();
info.setProperty("oracle.net.authentication_services", "(TCPS)");
info.setProperty("javax.net.ssl.trustStore", "YOUR_WALLET_LOCATION/cwallet.sso");
info.setProperty("javax.net.ssl.trustStoreType", "SSO");
info.setProperty("javax.net.ssl.keyStore", "YOUR_WALLET_LOCATON/cwallet.sso");
info.setProperty("javax.net.ssl.keyStoreType", "SSO");

Connection conn = DriverManager.getConnection(url, info);
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery("select user from dual");

while (rset.next())
System.out.println(rset.getString(1));

rset.close();
stmt.close();
conn.close();
}
}

但我看到以下错误。我也尝试使用“setProperty”更新用户 ID 和密码,但仍然看到相同的错误。

java.sql.SQLRecoverableException:IO 错误:网络适配器可以 不建立连接 oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:673) 在 oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:715) 在 oracle.jdbc.driver.T4CConnection.(T4CConnection.java:385) 在 oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:30) 在 oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:564) 在 java.sql.DriverManager.getConnection(DriverManager.java:664) 在 java.sql.DriverManager.getConnection(DriverManager.java:208) 在 TestOracleSSLConnection.main(TestOracleSSLConnection.java:22) 引起 作者:oracle.net.ns.NetException:网络适配器无法 建立连接 oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:445) 在 oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:464) 在 oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:594) 在 oracle.net.ns.NSProtocol.connect(NSProtocol.java:229) 在 oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1360) 在 oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:486) ... 7 更多原因:oracle.net.ns.NetException:无法初始化 ssl 语境。在 oracle.net.nt.CustomSSLSocketFactory.getSSLSocketFactory(CustomSSLSocketFactory.java:325) 在 oracle.net.nt.TcpsNTAdapter.connect(TcpsNTAdapter.java:115) 在 oracle.net.nt.ConnOption.connect(ConnOption.java:133) 在 oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:411) ... 12 更多 引起:oracle.net.ns.NetException:无法初始化信任 店铺。在 oracle.net.nt.CustomSSLSocketFactory.getTrustManagerArray(CustomSSLSocketFactory.java:413) 在 oracle.net.nt.CustomSSLSocketFactory.getSSLSocketFactory(CustomSSLSocketFactory.java:309) ... 15 更多原因: oracle.security.crypto.asn1.ASN1FormatException: oracle.security.crypto.core.CipherException:无效的填充字符串 (或不正确的密码)在 oracle.security.crypto.cert.PKCS12Safe.input(PKCS12Safe.java:226) 在 oracle.security.crypto.cert.PKCS12Safe.(PKCS12Safe.java:120) 在 oracle.security.crypto.cert.PKCS12.input(PKCS12.java:179) 在 oracle.security.crypto.cert.PKCS12.(PKCS12.java:119) 在 oracle.security.pki.OracleKeyStoreSpi.engineLoad(未知来源)在 oracle.security.pki.OracleSSOKeyStoreSpi.engineLoad(未知来源) 在 java.security.KeyStore.load(KeyStore.java:1445) 在 oracle.net.nt.CustomSSLSocketFactory.getTrustManagerArray(CustomSSLSocketFactory.java:404) ... 16 更多

【问题讨论】:

    标签: java oracle ssl jdbc java-8


    【解决方案1】:

    您可以查看blog 了解更多详情吗? Oracle 钱包需要 oraclepki.jar、osdt_core.jar 和 osdt_cert.jar。

    【讨论】:

    • 谢谢,是的,我正在使用我的课程路径中提到的所有 jars
    • 你能关注博客并只传递必要的连接属性吗?
    • 谢谢,现在已经解决了。我正在生成似乎不正确的证书。在我开始使用服务器上的 sso 证书后它就可以工作了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-15
    • 2022-09-28
    • 2020-05-28
    • 2012-06-11
    • 2020-05-25
    • 2014-07-26
    相关资源
    最近更新 更多