从现有的PKCS#12密钥库创建Oracle Wallet

时间:2014-05-01 16:08:24

标签: oracle plsql https ssl-certificate

我有一个Web服务提供者发布的.p12密钥库文件,我希望通过来自Oracle 11g2数据库的PL / SQL过程与之通信(SOAP)。

使用以下内容创建了一个钱包:

$ orapki wallet create –wallet [walletdirectory] -pwd [password] -auto_login

生成的“ewallet.p12”文件随后被替换为(重命名为“ewallet.p12”)密钥库文件。

但是,无法授权SOAP请求。服务提供商的日志显示(我无法使用完整日志):

Error log Apache httpd 
[<timestamp>] [error] [client <IP>] access to <URL> failed, reason: SSL requirement expression not fulfilled (see SSL logfile for more details)

ACL设置已经过彻底审核。我现在正在探索Oracle Wallet未正确设置的可能性(因为可能只是简单地替换密钥库文件)。我无法从提供的.p12中提取私钥以添加到新生成的'ewallet.p12'。

因此,我想使用Oracle Wallet Manager创建电子钱包。我遇到的一些问题。

  • 我无法在OWM中将所提供的.p12文件作为钱包打开
  • 将提供的密钥库重命名为'ewallet.p12'允许我在OWM中打开钱包,但在输入密钥库密码后,显示“密码错误”

简明扼要的问题是:如何从已有的PKCS#12文件创建Oracle Wallet?既可以作为完整产品,也可以生成所需的.SSO文件?关于这个问题可能是什么原因的任何其他建议?

注意:使用SOAPUI,我能够使用提供的密钥库与Web服务成功通信。

1 个答案:

答案 0 :(得分:1)

无法授权Web服务,因为Oracle Wallet中的cwallet.sso文件不正确。从现有PKCS#12密钥库生成正确的Oracle Wallet的完整过程是:

$ orapki wallet create -wallet /path/to/wallet -auto_login

[path / to / wallet]的目标是已包含PKCS#12密钥库的现有目录。这会生成正确的cwallet.sso文件。密钥库中包含的证书现在可以显示为:

$ orapki wallet display -wallet /path/to/wallet

现在,Oracle Wallet可以与ACL关联:

SQLPlus: EXEC DBMS_NETWORK_ACL_ADMIN.ASSIGN_WALLET_ACL('[acl_file.xml]','file:/path/to/wallet');

但是,由于我不知道的原因,无法使用Oracle Wallet Manager工具打开以这种方式创建的Oracle Wallet。