Oracle JDBC抛出PKI-02002:无法打开钱包。检查密码

时间:2018-09-26 08:20:21

标签: java oracle jdbc wallet

在我的Java项目中,我使用oracle钱包将凭据存储到不同环境中的数据库中。到目前为止,一切正常,但是现在我面临一个我无法解释的问题。

在我当前的配置(已经使用大约一年了,可以使用)中,我根据oracles文档https://docs.oracle.com/cd/B19306_01/network.102/b14266/cnctslsh.htm

生成了钱包。

现在,我正在设置一个新的环境,并使用新的凭据生成了一个新的钱包。但是由于某种原因,JDBC无法打开此钱包:

  

原因:java.sql.SQLException:遇到了问题   秘密商店。检查钱包位置是否存在开放   钱包(cwallet.sso),并确保此钱包包含正确的钱包   使用mkstore实用程序的凭据:java.io.IOException:PKI-02002:   无法打开钱包。检查密码。

当然,我检查了位置是否正确以及访问权限是否正确配置-一切似乎都很好。 如果我将旧钱包复制到此位置,则应用程序可以连接到数据库,但不能使用新钱包连接。

当我比较旧的和新创建的钱包时,我注意到新的钱包比旧的钱包小得多,旧的大约为3.8 KB,新的大约为1.5 KB。

我使用orapki实用程序检查了两者的内容:

新钱包

#orapki wallet display -wallet .
Oracle PKI Tool : Version 12.1.0.2
Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.

Requested Certificates:
User Certificates:
Oracle Secret Store entries:
oracle.security.client.connect_string1
oracle.security.client.connect_string2
oracle.security.client.connect_string3
oracle.security.client.connect_string4
oracle.security.client.password1
oracle.security.client.password2
oracle.security.client.password3
oracle.security.client.password4
oracle.security.client.username1
oracle.security.client.username2
oracle.security.client.username3
oracle.security.client.username4
Trusted Certificates:

旧钱包

# orapki wallet display -wallet .
Oracle PKI Tool : Version 12.1.0.2
Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.

Requested Certificates:
User Certificates:
Oracle Secret Store entries:
oracle.security.client.connect_string1
oracle.security.client.connect_string2
oracle.security.client.connect_string3
oracle.security.client.connect_string4
oracle.security.client.password1
oracle.security.client.password2
oracle.security.client.password3
oracle.security.client.password4
oracle.security.client.username1
oracle.security.client.username2
oracle.security.client.username3
oracle.security.client.username4
Trusted Certificates:
Subject:        OU=Class 1 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
Subject:        OU=Class 3 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
Subject:        OU=Class 2 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
Subject:        OU=Secure Server Certification Authority,O=RSA Data Security\, Inc.,C=US
Subject:        CN=GTE CyberTrust Global Root,OU=GTE CyberTrust Solutions\, Inc.,O=GTE Corporation,C=US

虽然现在很明显为什么文件大小有所不同,但我仍然不知道此受信任的证书条目来自何处,因为在创建钱包时我绝对没有导入它(因为在Oracle中也没有提到它)文档)

现在,我不知道这是否是应用程序无法连接数据库的原因,但这是我能发现的唯一区别。

所以我的问题是:

我错过了什么吗?有版本问题吗?我使用11g实用程序生成了第一个钱包,这次使用的是12c版本,但是应该可以使用-不是吗? 我尝试在linux和Windows上生成钱包,这两者都导致了相同的钱包。

错误消息表明无法打开钱包,并希望我检查密码。它指的是哪个密码,我以为这个钱包的重点是无需配置密码?

我希望有人可以在这里将我暂停。

0 个答案:

没有答案