zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    最大子串和
    [USACO1.5]数字金字塔 Number Triangles
    数字金字塔
    台阶问题
    取余运算
    数列分段pascal程序
    Java 集合-Collection接口和迭代器的实现
    Java 集合-集合介绍
    Java IO流-File类
    Git学习记录
  • 原文地址:https://www.cnblogs.com/lixuebin/p/10814166.html
Copyright © 2011-2022 走看看