什么是数字证书及不同格式的证书

证书专题目录

  • 1. 什么是数字证书及不同格式的证书
  • 2. 如何查看和获取证书

什么是证书

什么是数字证书和数字签名,可以参考如下文章:

  • 阮一峰 -- 数字签名是什么? 里面翻译了一篇英文的文章,图解数字证书和数字签名
  • 狂奔的乌龟 -- 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

你可能感兴趣的:(什么是数字证书及不同格式的证书)