zoukankan      html  css  js  c++  java
  • 证书格式有哪些,区别以及如何生成证书

    本文为博主原创,未经允许不得转载:

      一般来说,主流的Web服务软件,通常都基于OpenSSL和Java两种基础密码库。

    • Tomcat、Weblogic、JBoss等Web服务软件,一般使用Java提供的密码库。通过Java Development Kit (JDK)工具包中的Keytool工具,生成Java Keystore(JKS)格式的证书文件。

    • Apache、Nginx等Web服务软件,一般使用OpenSSL工具提供的密码库,生成PEM、KEY、CRT等格式的证书文件。

    证书格式:

    • .DER或.CER文件: 这样的证书文件是二进制格式,只含有证书信息,不包含私钥。

    • *.CRT文件: 这样的证书文件可以是二进制格式,也可以是文本格式,一般均为文本格式,功能与 .DER及.CER证书文件相同。

    • *.PEM文件: 这样的证书文件一般是文本格式,可以存放证书或私钥,或者两者都包含。 .PEM 文件如果只包含私钥,一般用.KEY文件代替。

    • .PFX或.P12文件: 这样的证书文件是二进制格式,同时包含证书和私钥,且一般有密码保护。

    使用openSSL生成证书及证书导入到jks,生成p12证书导入到 jks操作步骤如下:

    1. 使用 OpenSSL 生成私钥与签名证书文件,并根据提示输入对应的证书属性包括国家,区域,域名等;

    1. 生成 cer 的证书文件:根据 第一步生成的私钥与签名文件生成一个cer文件 ;

    1. 将上一步生成的 server.crt 导入到指定的 jks 文件中 ;

    1. 查看导入 jks 的证书 ;

    1. 将 1 和2 生成的文件导入到 p12文件中;

    1. 将生成的P12文件导入到jks中;

    1. 重新查看jks中的证书配置;

      1.使用以下命令生成私钥与签名证书文件,并根据提示输入对应的证书属性包括国家,区域,域名等:

    openssl req -new -newkey rsa:2048 -nodes -keyout www.test.com.key -out www.test.com.csr

      其中 rsa:2048 为生成的证书的长度,www.test.com.key 为申请生成的私钥文件,www.test.com.csr 为申请生成的证书签名请求文件。

      CSR是Certificate Signing Request的英文缩写,即证书签名请求文件,是证书申请者在申请数字证书时由CSP(加密服务提供者)在生成私钥的同时也生成证书请求文件,

    证书申请者只要把CSR文件提交给证书颁发机构后,证书颁发机构使用其根证书私钥签名就生成了证书公钥文件,也就是颁发给用户的证书。

      CSR是以-----BEGIN CERTIFICATE REQUEST-----开头,-----END CERTIFICATE REQUEST-----为结尾的base64格式的编码。将其保存为文本文件,就是所谓的CSR文件。

    有CSR必定有KEY,是成对的,CSR最终变成为证书,和私钥key配对使用。 Key是以-----BEGIN RSA PRIVATE KEY-----开头的,-----END RSA PRIVATE KEY-----结尾的。

    Key必须保存好。证书下发后,CSR无需使用,仅提交时候需要。

      2.生成 cer 的证书文件:根据 第一步生成的私钥与签名文件生成一个cer文件

    openssl x509 -req -days 365 -in www.test.com.csr -signkey www.test.com.key -out www.test.com.crt

      x509的含义: 指定格式

      -days 365 : 证书的有效期为 365 天

      -signkey的含义: 自签名

       3. 将上一步生成的 server.crt 导入到指定的 jks 文件中

     keytool -import -trustcacerts -alias testServer -file server.crt -keystore testServer.jks 
      -trustcacerts -alias testServer : 信任证书并定义别名

      4. 查看导入 jks 的证书

    keytool -v -list -keystore  testServer.jks

      查看 jks 中的证书信息

       

      5.将 1 和2 生成的文件导入到 p12文件中:

     openssl pkcs12 -export -in server.crt -inkey www.test.com.key -out mycert.p12 -name abc -CAfile myCA.crt 

      生成过程输入的密码就是keypass

       name就是别名

      

      6. 将生成的P12文件导入到jks中:

    keytool -importkeystore -v -srckeystore mycert.p12 -srcstoretype pkcs12 -srcstorepass a123456 -destkeystore Aserver.keystore -deststoretype jks -deststorepass b123456

      deststorepass就是新生成的storepass

      

       

      7. 重新查看jks中的证书配置:

     keytool -v -list -keystore Aserver.keystore

      执行如图:

  • 相关阅读:
    BZOJ1027 [HNOI2004]打鼹鼠 【dp】
    面试的绝招(V1.0)
    面试的绝招(V1.0)
    Google是如何做测试的?
    Google是如何做测试的?
    Google是如何做测试的?
    六年测试之精华分享:产品质量应从哪些方面提高
    六年测试之精华分享:产品质量应从哪些方面提高
    六年测试之精华分享:产品质量应从哪些方面提高
    拒绝混乱,回归有序
  • 原文地址:https://www.cnblogs.com/zjdxr-up/p/14833733.html
Copyright © 2011-2022 走看看