• 证书格式及其转换


    https://blog.csdn.net/luo15242208310/article/details/108195803

    参考链接:der pem cer crt key pfx等概念及区别
    参考连接:Java 证书管理(keytool实例),jkscrtcetketstore

    编码格式
    X.509 - 当前最流行的证书标准,有以下两种编码格式.

    PEM DER
    全称 Privacy Enhanced Mail Distinguished Encoding Rules
    存储方式 base64编码
    -----BEGIN XXX-----
    BhMCY24x…
    -----END XXX----- 二进制格式
    是否可读 可读 不可读
    存储内容 包括所有私钥(RSA 和 DSA)、公钥(RSA 和 DSA)和 (x509) 证书。
    它存储用 Base64 编码的 DER 格式数据,用 ascii 报头包围,因此适合系统之间的文本模式传输 包含所有私钥、公钥和证书。
    它是大多数浏览器的缺省格式,并按 ASN1 DER 格式存储。
    它是无报头的,PEM 是用文本报头包围的 DER
    适用方向 Apache、Nginx Java、Windows服务器
    证书编码的转换

    # PEM转为DER
    openssl x509 -in cert.crt -outform der -out cert.der
    # DER转为PEM
    openssl x509 -in cert.crt -inform der -outform pem -out cert.pem

    注:
    要转换KEY文件也类似,只不过把x509换成rsa,要转CSR的话,把x509换成req…

    证书相关的文件类型
    常见的扩展名除了PEM和DER还有以下这些,它们除了编码格式可能不同之外,内容也有差别,但大多数都能相互转换编码格式.

    类型 内容 编码
    crt 证书(不包括私钥) pem | der
    cer 证书(不包括私钥) pem | der
    key 公钥或者私钥,并非X.509证书 pem | der
    csr 证书签名请求(包含公钥) pem | der
    pfx/p12 PKCS#12,包含公钥和私钥的二进制格式证书
    PFX通常会有一个"提取密码" der
    p7b 以树状展示证书链(certificate chain),同时也支持单个证书,不含私钥
    jks Java Key Storage利用Java的keytool工具
    keypass: 指定别名条目的密码(私钥的密码)
    storepass: 指定密钥库的密码(获取keystore信息所需的密码)
    证书格式转换
    一般来说,主流的Web服务软件,通常都基于OpenSSL和Java两种基础密码库。

    格式 工具 平台
    KEY&CRT openssl
    xca(UI工具) Apache、Nginx等
    PFX openssl
    xca
    windows自带证书库 微软Windows Server中的
    Internet Information Services(IIS)服务,
    使用Windows自带的证书库生成PFX格式的证书文件
    JKS keytool
    kse(UI工具) Tomcat、Weblogic、JBoss等
    一般使用Java提供的密钥库,通过Keytool工具,生成Java Keystore(JKS)格式的证书文件
    KDB iKeyman IBM的Web服务产品,如:
    Websphere、IBM Http Server(IHS)等
    一般使用IBM产品自带的iKeyman工具,生成KDB格式的证书文件
    证书格式之间的转换如下图:


    转换cert+key为pfx

    openssl pkcs12 -export -in server.crt -inkey server.key -out server.pfx

    pfx转换jks

    keytool -importkeystore -srckeystore D:server.pfx -destkeystore D:server.jks -srcstoretype PKCS12 -deststoretype JKS

    转换jks为pfx

    keytool -importkeystore -srckeystore D:server.jks -destkeystore D:server.pfx -srcstoretype JKS -deststoretype PKCS12

    将pfx转换为pem/key/crt

    # 提示你输入提取代码,server.pem就是可读的文本
    openssl pkcs12 -in server.pfx -nodes -out server.pem
    openssl rsa -in server.pem -out server.key
    openssl x509 -in server.pem -out server.crt

    转换key为pk8
    注:用于Netty SslContextBuilder中指定key文件(非加密)

    openssl pkcs8 -topk8 -in server.key -out pkcs8_server.key -nocrypt

  • 相关阅读:
    shell脚本day06-sed
    shell脚本day05-交互式输入与for语句
    shell脚本day04-if语句
    shell脚本day04-grep与正则表达式
    shell脚本day03-编程原理
    shell脚本day02-重定向与管道符
    编程原理大致介绍
    进程管理
    Linux网络
    shell脚本--grep以及正则表达式
  • 原文地址:https://www.cnblogs.com/exmyth/p/14808659.html
Copyright © 2020-2023  润新知