1

我正在使用瘦客户端 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/wallet manager 使用 SHA-256 作为哈希算法生成证书?

4

1 回答 1

4

您可以使用 orapki with-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
于 2016-07-09T09:50:50.420 回答