IHS .kdb转crt,key

IHS .kdb转crt,key

参考文档:

环境:
IHS-7.0.0.27
java-1.6

一.将IHS 密钥库.kdb导出为.p12
1.用Ikeyman打开Key文件
IHS <wbr>.kdb转crt,key

IHS <wbr>.kdb转crt,key

2.export  PKCS12文件类型
IHS <wbr>.kdb转crt,key

输入PKCS12文件的password
IHS <wbr>.kdb转crt,key


注意:在导出过程中,如果遇到如下错误, restricted policy files, 则需要先将java sdk 的policy由restricted转换成unrestricted ,见官方文档
IHS <wbr>.kdb转crt,key

下载unstricted policy文件,上面的是>=java-1.5, 下面的是>=1.4,实测过程中,使用新的unstricted policy文件时,ikeyman无法正常打开.kdb文件,查实为sdk版本与unstricted policy文件不匹配,解决办法:

A.使用older unstricted policy进行替换,实测能成功打开.kdb并导出为.p12
B.安装最新的IHS补丁,使用较新的unstricted policy文件
IHS <wbr>.kdb转crt,key
/opt/IBM/HTTPServer/java/jre/lib/security
IHS <wbr>.kdb转crt,key



openssl安装略
二.openssl转换公私钥
提示:openssl pkcs12 help可以查看详细的命令格式和帮助
1.仅导出私钥
root@config-p:~#openssl pkcs12 -in key.p12 -out sephora.cn.key -nodes -nocerts
Enter Import Password:
MAC verified OK
2.仅导出服务器证书cert
root@config-p:~#openssl pkcs12 -in key.p12 -out sephora.cn.crt -nodes -nokeys
Enter Import Password:
MAC verified OK
3.转换为pem格式(同时包含key,cert)
root@config-p:~#openssl pkcs12 -in key.p12 -out sephora.cn.pem -nodes
Enter Import Password:
MAC verified OK

root@config-p:~#ls sephora.cn.*
sephora.cn.crt  sephora.cn.key
root@config-p:~#file sephora.cn.*
sephora.cn.crt: ASCII text, with very long lines
sephora.cn.key: ASCII text

查看证书内容
openssl x509 -text -in sephora.cn.pem
openssl pkcs12 -info -in key.p12 


root@config-p:~#openssl pkcs12 -info -in key.p12 
Enter Import Password:
MAC Iteration 1
MAC verified OK
PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 1
Key bag
Bag Attributes
    localKeyID: 31 34 35 38 35 35 31 31 32 39 30 38 30 
    friendlyName: foocom
Key Attributes:
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----BEGIN ENCRYPTED PRIVATE KEY-----
.....
OLU=
-----END ENCRYPTED PRIVATE KEY-----
Certificate bag
Bag Attributes
    localKeyID: 31 34 35 38 35 35 31 31 32 39 30 38 30 
    friendlyName: foocom
subject=/1.3.6.1.4.1.311.60.2.1.3=CN/1.3.6.1.4.1.311.60.2.1.2=Shanghai/1.3.6.1.4.1.311.60.2.1.1=Shanghai/businessCategory=Private Organization/serialNumber=略
issuer=/C=US/O=GeoTrust Inc./CN=GeoTrust EV SSL CA - G4
-----BEGIN CERTIFICATE-----
MIIIQDCCByigAwIBAgIQRhlKWFL2ySrC2NWs4SCFQzANBgkqhkiG9w0BAQsFADBH
......
Qsux8A==
-----END CERTIFICATE-----
Certificate bag
Bag Attributes
    localKeyID: 31 34 35 38 35 35 31 31 32 39 30 38 38 
    friendlyName: foocom
subject=/C=US/O=GeoTrust Inc./CN=GeoTrust EV SSL CA - G4
issuer=/C=US/O=GeoTrust Inc./CN=GeoTrust Primary Certification Authority
-----BEGIN CERTIFICATE-----
......
-----END CERTIFICATE-----
Certificate bag
Bag Attributes
    localKeyID: 31 34 35 38 35 35 31 31 32 39 30 38 39 
    friendlyName: foocom
subject=/C=US/O=GeoTrust Inc./CN=GeoTrust Primary Certification Authority
issuer=/C=US/O=GeoTrust Inc./CN=GeoTrust Primary Certification Authority
-----BEGIN CERTIFICATE-----
......
-----END CERTIFICATE-----


补充:openssl常见证书格式转换示例
PEM--DER/CER(BASE64--DER编码的转换)
       openssl x509 -outform der -in foo.pem -out foo.der
PEM--P7B(PEM--PKCS#7)
       openssl crl2pkcs7 -nocrl -certfile foo.crt -out certificate.p7b -certfile CA.crt
PEM--PFX(PEM--PKCS#12)
       openssl pkcs12 -export -out foo.pfx -inkey foo.key -in foo.crt -certfile CA.crt
PEM--p12(PEM--PKCS#12)
       openssl pkcs12 -export -out foo.p12 -in foo.pem -inkey foo.key
CER/DER--PEM(编码DER--BASE64)
       openssl x509 -inform der -in foo.crt -out foo.pem
P7B--PEM(PKCS#7--PEM)
       openssl pkcs7 -print_certs -in foo.p7b -out foo.pem
P7B--PFX(PKCS#7--PKCS#12)
       openssl pkcs7 -export -in foo.p7b -inkey foo.key -out foo.pfx -certfile CA.crt
PFX/p12--PEM(PKCS#12--PEM)
       openssl pkcs12 -in foo.pfx -out foo.pem
       如无需加密pem中私钥,可以添加选项-nodes
       如无需导出私钥,可以添加选项-nokeys;
PEM BASE64--X.509文本格式
       openssl x509 -in foo_base64.pem -text -out foo_x509.pem
PFX文件中提取私钥(.key)
       openssl pkcs12 -in foo.pfx -nocerts -nodes -out foo.key
PEM--SPC
       openssl crl2pkcs7 -nocrl -certfile foo.pem -outform DER -out foo.spc
PEM--PVK(openssl 1.x开始支持)
       openssl rsa -in foo.pem -outform PVK -pvk-strong -out foo.pvk
PEM--PVK
对于openssl 1.x之前的版本,可以下载pvk转换器后通过以下命令完成
       pvk -in ca.key -out ca.pvk -nocrypt -topvk
posted @ 2016-03-22 09:29  李庆喜  阅读(569)  评论(0编辑  收藏  举报