pem格式证书编码 x509_TLS 如何工作 X.509 证书

尽管在TLS 1.3 中,证书是可选的(可以直接使用纯 Key),但是大多数应用和协议(不仅仅是 Web)都大量使用了证书来验证一些其它元数据。具体来说,就是 X.509 证书标准的第 3 个版本。

X.509 标准使用了一个叫做 ASN.1(Abstract Syntax Notation One) 的描述语言,用它来指定包含在证书中的信息。

ASN.1 的格式大约是这样:

3053ca186774a9542479a0c99566dfdb.png

  • tbsCertificate。“to-be-signedcertificate,也就是要被签名的证书。这里面包含了所有想要验证的信息。对于 Web 来说,这里可以包含一个域名(www.bing.com),一个 public key,一个过期日期等等。

  • signatureAlgorithm。用来对证书签名的算法。

  • signatureValue。来自 CA 的签名。

通过浏览器连接到一个使用了 HTTPS 的网站,你就可以很简单的就查看一个 X.509 证书里面的内容:

ff6b20c96262df9c6d2ffe158d84ef12.png

20d7f3ce6e0f8450a1c5e7eefe893855.png

35083d0875e9bb912252ccada8919339.png

PEM 文件

你可能会经常看到 .pem 后缀的 X.509 证书,里面的内容是使用 base64 进行编码的,开头和结尾是有“注释”的:

671153542f043065c071aa04969b7fba.png

如果你对里面base64 部分的内容进行解码,你就会得到 DER(Distinguished Encoding Rules,可辩别编码规则) 编码的证书。DER 是一种确定性的(只有一种编码方式)二进制编码,它可以把 X.509 证书翻译成字节。

它们之间的关系转化如图:

a5a75c094ca3c9b73c2d934092e4a147.png

尽管说了这么多,但是 X.509 证书还是颇具争议的。

2012年,一组研究人员将验证X.509证书戏称为“世界上最危险的代码”。这是因为DER编码是一种难以正确解析的协议,而X.509证书的复杂性使得许多错误具有潜在的破坏性。因此,不建议任何现代应用程序使用X.509证书,除非必须使用它们。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值