我正在使用瘦客户端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作为哈希算法?
答案 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