zoukankan      html  css  js  c++  java
  • X509 文件扩展名

    编码 (也用于扩展名)

    • .DER = 扩展名DER用于二进制DER编码的证书。这些证书也可以用CER或者CRT作为扩展名。比较合适的说法是“我有一个DER编码的证书”,而不是“我有一个DER证书”。
    • .PEM = 扩展名PEM用于ASCII(Base64)编码的各种X.509 v3 证书。文件开始由一行"—– BEGIN …“开始。

    常用的扩展名

      • .CRT = 扩展名CRT用于证书。证书可以是DER编码,也可以是PEM编码。扩展名CER和CRT几乎是同义词。这种情况在各种unix/linux系统中很常见。
      • CER = CRT证书的微软型式。可以用微软的工具把CRT文件转换为CER文件(CRT和CER必须是相同编码的,DER或者PEM)。扩展名为CER的文件可以被IE识别并作为命令调用微软的cryptoAPI(具体点就是rudll32.exe cryptext.dll, CyrptExtOpenCER),进而弹出一个对话框来导入并/或查看证书内容。
      • .KEY = 扩展名KEY用于PCSK#8的公钥和私钥。这些公钥和私钥可以是DER编码或者PEM编码。

    openssl命令生成证书

    1.首先要生成服务器端的私钥(key文件):
    openssl genrsa -des3 -out server.key 1024
    运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以去除这个口令,但一定要采取其他的保护措施!
    去除key文件口令的命令:
    openssl rsa -in server.key -out server.key

    2.openssl req -new -key server.key -out server.csr -config openssl.cnf
    生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可.

    3.对客户端也作同样的命令生成key及csr文件:
    openssl genrsa -des3 -out client.key 1024
    openssl req -new -key client.key -out client.csr -config openssl.cnf

    4.CSR文件必须有CA的签名才可形成证书.可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA呢.
    openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf

    5.用生成的CA的证书为刚才生成的server.csr,client.csr文件签名:
    Openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
    Openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

    现在我们所需的全部文件便生成了.

    另:
    client使用的文件有:ca.crt,client.crt,client.key
    server使用的文件有:ca.crt,server.crt,server.key
    .crt文件和.key可以合到一个文件里面,本人把2个文件合成了一个.pem文件(直接拷贝过去就行了)

     将私钥秘cer证书合并成p12格式  

    1)生成pkcs12文件,但不包含CA证书:  

    openssl pkcs12 -export -inkey ocspserverkey.pem -in ocspservercert.pem  -out ocspserverpkcs12.pfx

    2)  生成pcs12文件,包含CA证书: 

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

    3)  将pcks12中的信息分离出来,写入文件:

    openssl pkcs12 –in ocsp1.pfx -out certandkey.pem

    4)  显示pkcs12信息:

    openssl pkcs12 –in ocsp1.pfx -info  

    ------------------------------------ 

     附: 1、把cert1.pem转换成.p12格式  

    openssl pkcs12 -export -in cert1.pem -inkey cert1.key -certfile ca.pem -out cert1.p12  

    2、把cert1.pem转换成.cer格式:只需把扩展名改为.cer即可.

  • 相关阅读:
    barcode制作条形码及破解
    软件敏捷架构师
    软件需求分析三步走
    GDI+显示GIF动画
    CSpinButtonCtrl的弱智问题
    [C++] STL里面的map
    [C#] 再议Exception
    [C++] unsigned是麻烦制造者
    用GDI+转BMP为WMF、EXIF、EMF格式
    [C++] 编译时的warning
  • 原文地址:https://www.cnblogs.com/linn/p/4028973.html
Copyright © 2011-2022 走看看