常见证书详解及openssl相互转换

SSL 证书提供了一种在互联网上身份验证的方式,是用来标识和证明通信双方身份的数字信息文件。使用SSL 证书的网站,可以保证用户和服务器间信息交换的保密性,具有不可窃听、不可更改、不可否认、不可冒充的功能。

SSL证书由浏览器中“受信任的根证书颁发机构”在验证服务器身份后颁发,具有网站身份验证和加密传输双重功能.

SSL工具箱:https://www.myssl.cn/tools/

常见证书格式及相互转化

  • PKCS#7:Cryptographic Message Syntax Standard

  • PKCS#10:Certification Request Standard

  • PKCS#12:Personal Information Exchange Syntax Standard

  • X.509:是常见通用的证书格式。所有的证书都符合为Public Key Infrastructure (PKI) 制定的 ITU-T X509 国际标准。

  • PKCS#7:常用的后缀是: .P7B .P7C .SPC

  • PKCS#12:常用的后缀有: .P12 .PFX

  • X.509:DER 编码(ASCII)的后缀是: .DER .CER .CRT

  • X.509:PAM 编码(Base64)的后缀是: .PEM .CER .CRT

  • .cer/.crt:是用于存放证书,它是2进制形式存放的,不含私钥。

  • .pem:跟crt/cer的区别是它以Ascii来表示。

  • pfx/p12:用于存放个人证书/私钥,他通常包含保护密码,2进制方式

  • p10:是证书请求

  • p7r:是CA对证书请求的回复,只用于导入

  • p7b:以树状展示证书链(certificate chain),同时也支持单个证书,不含私钥。

openssl常用命令

DER文件(.crt .cer .der)转换为PEM

1
2
3
openssl x509 -inform der -in certificate.cer -out certificate.pem
or
openssl x509 -outform pem -in your-cert.crt -out your-cert.pem

PEM文件转换为DER

1
openssl x509 -outform der -in certificate.pem -out certificate.der

将包含私钥和证书的PKCS#12文件(.pfx .p12)转换为PEM

1
2
3
openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes
or
openssl pkcs12 -nocerts -nodes -in cert.p12 -out private.pem

PEM证书文件和私钥转换为PKCS#12(.pfx .p12)

1
2
3
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
or
openssl pkcs12 -exportin keys/client1.crt -inkey keys/client1.key -out keys/client1.pfx

PEM格式的ca.key转换为Microsoft可以识别的pvk格式。

1
pvk -in ca.key -out ca.pvk -nocrypt -topvk

从 PFX 格式文件中提取私钥格式文件 (.key)

1
openssl pkcs12 -in mycert.pfx -nocerts -nodes -out mycert.key

将PKCS#8编码的私钥转化成PKCS#1编码

1
openssl rsa -in privkey.pem  -out privkey-rsa.pem

获取服务器的证书

1
openssl s_client -host api.mailgun.net -port 443 -prexit -showcerts

使用openssl测试双向认证

1
openssl s_client -connect test.com:443 -cert device.pem -key device.key -CAfile trusted-chain.pem
--------------------本文结束,感谢您的阅读--------------------

本文标题:常见证书详解及openssl相互转换

文章作者:弓昭

发布时间:2019年08月11日 - 22:53

最后更新:2021年04月21日 - 20:39

原始链接:https://gongzhao1.gitee.io/常见证书详解及openssl相互转换/

联系邮箱:gongzhao1@foxmail.com