【学习笔记】SSL证书之文件格式

SSL证书及密钥以文件的形式存在于我们的电脑上,这些文件一般为以下4种格式:

  • DER
  • PEM
  • PFX / PKCS#12
  • PKCS#7

1、DER

  • Distinguished Encoding Rules(可辨别编码规则)是在线证书的格式
  • 二进制编码,如果用TXT进行查看会呈现出乱码。
  • 在SSL证书领域,我们一般不用DER格式的文件来交换证书(因为DER只是在线文件)
  • DER文件格式有以下文件扩展名:
    • .der    .cert    .crt    .csr
    • 需要注意的是,文件扩展名不足以识别文件格式(比如不能说用了.cert或者.crt就说是DER文件)

2、PEM

  • Privacy Enhanced Mail(隐私增强邮件)
  • DER 格式的 base64 编码版本
    • 每6位(bits)转换为一个字符(character)
    •  
      Base64是一种可读性算法(普通的二进制数据随机性很大,二进制文件打开后会有很多奇怪的字符,可读性很差),使用Base64后可读性增强,它由64个字符组成,包括大写A-Z,小写a-z,数字0-9,两个符号 + 和 /

  • PEM格式每个人都喜欢,因为没有特殊字符、特殊字母,所以它易于复制粘贴(好使)
  • PEM文件包含以下识别符(可包含多个):
    • “-----BEGIN CERTIFICATE-----” “-----END CERTIFICATE-----”证书文件
    • “-----BEGIN PRIVATE KEY-----”  “-----END PRIVATE KEY-----”私钥文件
    • “-----BEGIN CERTIFICATE REQUEST-----”  “-----END CERTIFICATE REQUEST-----” 证书申请时需要提交的CSR文件
  • PEM文件格式扩展名
    • .pem    .cert    .crt    .key    .csr
    • 同样的,除了.pem,其他扩展名别的文件格式也能用,不能因为这些扩展名就认定是PEM文件
    • 通过.pem或者上述的识别符(如“-----BEGIN CERTIFICATE-----”)可以判定是PEM文件格式

3、PFX / PKCS#12

  • PFX = Personal Information Exchange,个人信息交换(不知道缩写为啥不都选第一个字母)
  • Public-Key Cryptography Standard #12,公钥加密标准#12
  • PFX最早由微软(Microsoft)在1996年发布,但是这个文件存在的问题是不易读,且经常让人困扰,所以RSA Labs在1999年将PFX标准进行重新编写,并重新发布了PKCS#12,现在全世界都在用PKCS#12格式(纯PFX格式的文件很少见了);
  • 虽然现在都用PKCS#12格式,但还是用的PFX名称和扩展(还叫他PFX文件)
  • PFX / PKCS#12文件里包含一张证书和相匹配的密钥,出现在相同的文件里,易于部署
    • 此外,PFX文件还包含额外的链证书或者说中间证书(之后我们会阐述证书链)
  • PFX / PKCS#12文件也是二进制编码,不能用txt查看
  • PFX / PKCS#12文件扩展名如下:
    • .pfx    .p12    .pkcs12

4、PKCS#7

  • Public-Key Cryptography Standard #7
  • Base64编码文件(“-----BEGIN PKCS7-----”)
  • 包含证书或者中间证书,但不包含密钥,只包含证书
  • PKCS#7在SSL证书中不常用,但也是很常用的证书或密钥格式,它起初是用于S/MIME邮件签名来分享证书,用PKCS#7格式的文件验证邮件的签名。(注意,签名由私钥创建,但由证书中的公钥进行验证,这就解释了为什么PKCS#7文件格式里没有密钥)
  • PKCS#7文件扩展名如下:
    • .pkcs7    .p7b    .p7c

最后,不同的软件使用对应的文件格式,列举如下:

  • DER:Java
  • PEM:Apache,NGINX,Linux,Plesk;Cisco Routers,Cisco ASAs,BigIP F5
  • PFX / PKCS#12:IIS,Windows,Tomcat,Thunderbird,Firefox
  • PKCS#7:S/MIME;Java,Windows

参考文献

1、网站:Practical Networking.net:Practical TLS

  • 17
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值