证书专题目录
什么是证书
什么是数字证书和数字签名,可以参考如下文章:
- 阮一峰 -- 数字签名是什么? 里面翻译了一篇英文的文章,图解数字证书和数字签名
- 狂奔的乌龟 -- X.509数字证书的结构与解析 同样包括图解的内容,额外包括有 X.509 证书的格式和数据结构
- RFC5280 -- Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
X.509 v3
证书的 RFC 文档,这个是证书中最专业的文档 - DER vs. CRT vs. CER vs. PEM Certificates 英文文章,讲述不同格式的证书
我们重点关注下,不同格式的证书:
证书编码
-
DER
编码的证书,后缀可以有.cer
或者.crt
, 证书内容是二进制的 -
PEM
编码的证书,证书内容是 Base64 编码的文本内容,一般以—– BEGIN …
开头
常见的证书
-
.CRT
后缀的证书,两种编码格式都支持,一般包含公钥,一般在 Linux 系统中比较常见 -
.CER
后缀的证书,和.crt
后缀的证书比较类似,一般包含公钥 -
.KEY
常被用来存储私钥
证书操作
使用 openssl
命令证书,和不同格式之间转换。
查看 PEM 编码的证书
openssl x509 -in cert.pem -text -noout
openssl x509 -in cert.cer -text -noout
openssl x509 -in cert.crt -text -noout
如果遇到类似如下的错误,说明证书不是 PEM 编码的,是 DER 编码的证书
nable to load certificate
140736189195208:error:0906D06C:PEM routines:PEM_read_bio:no start line:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-22.50.2/libressl/crypto/pem/pem_lib.c:704:Expecting: TRUSTED CERTIFICATE
查看 DER 编码的证书
openssl x509 -in certificate.der -inform der -text -noout
不同格式的证书互转
从 PEM 转换为 DER
openssl x509 -in cert.pem -outform der -out cert.der
从 DER to PEM
openssl x509 -in cert.crt -inform der -outform pem -out cert.pem
转载于:https://www.jianshu.com/p/87211efe8b7f