使用orapki / wallet manager在oracle 11g中使用sha-256创建证书作为哈希算法

时间:2016-07-04 19:13:43

标签: ssl encryption oracle11g sha256 hashalgorithm

我正在使用瘦客户端jdbc驱动程序(类型4)在oracle 11g数据库(11.2.0.1)和java客户端之间创建启用SSL的连接。我们使用orapki实用程序创建客户端/服务器/根证书,并将证书放在oracle钱包中。

当我们使用orapki实用程序(在oracle 11g db中)创建证书时,似乎是加密的默认哈希算法是md5。这工作正常,直到我们升级到jdk1.7 u101。此版本的jdk不再支持MD5。所以我们似乎需要使用SHA-256作为哈希算法。我一直得到oracle钱包管理器11.2.0.1+支持SHA-256的引用,但我找不到任何关于如何在创建证书时指定SHA-256作为哈希算法的文档。

有没有办法通过orapki /钱包管理器生成证书,并使用SHA-256作为哈希算法?

1 个答案:

答案 0 :(得分:3)

您可以使用orapki和-sign_alg sha256来使用sha256而不是md5签署您的证书。

例如:创建用作受信任机构的自签名证书

orapki wallet create -wallet ./root -pwd welcome123 -nologo
orapki wallet remove -trusted_cert_all -wallet ./root -pwd welcome123  -nologo
orapki wallet add -wallet ./root -dn CN=Certification\ Authority\ For\ Testing,\ O=MyCompany,\ C=US -keysize 2048 -self_signed -validity 7300 -pwd welcome123 -sign_alg sha256  -nologo
orapki wallet export -wallet ./root -dn CN=Certification\ Authority\ For\ Testing,\ O=MyCompany,\ C=US -cert ./root/rootcertificate.crt -pwd welcome123  -nologo
keytool -printcert -file root/rootcertificate.crt
orapki wallet display -wallet ./root -pwd welcome123  -nologo

输出是:

Owner: CN=Certification Authority For Testing, O=MyCompany, C=US
Issuer: CN=Certification Authority For Testing, O= MyCompany, C=US
Serial number: 0
Valid from: Wed Mar 09 03:35:42 PST 2016 until: Tue Mar 04 03:35:42 PST 2036
Certificate fingerprints:
     MD5:  D1:EB:E4:27:FB:B1:C9:4A:CB:9D:28:A6:5A:C7:E7:20
     SHA1: 39:DD:C2:4A:EA:97:BD:47:52:8C:E6:B9:2C:97:F9:F4:A8:A4:5E:85
     SHA256: 04:28:19:01:AC:83:C3:69:D0:C9:1C:6A:94:08:B7:31:0C:65:21:7F:8E:FB:19:50:22:02:C4:9C:69:B1:1E:F6
     Signature algorithm name: SHA256withRSA
     Version: 1