## 数字证书
数字证书用来证明某个公钥是谁的，并且内容是正确的。

对于非对称加密算法和数字签名来说，很重要的一点就是公钥的分发。一旦公钥被人替换（典型的如中间人攻击），则整个安全体系将被破坏掉。

怎么确保一个公钥确实是某个人的原始公钥？

这就需要数字证书机制。

顾名思义，数字证书就是像一个证书一样，证明信息和合法性。由证书认证机构（Certification Authority，CA）来签发，权威的 CA 包括 verisign 等。

数字证书内容可能包括版本、序列号、签名算法类型、签发者信息、有效期、被签发人、**签发的公开密钥**、**CA 数字签名**、其它信息等等，一般使用最广泛的标准为 ITU 和 ISO 联合制定的 X.509 规范。

其中，最重要的包括 `签发的公开密钥`、`CA 数字签名` 两个信息。因此，只要通过这个证书就能证明某个公钥是合法的，因为带有 CA 的数字签名。

更进一步地，怎么证明 CA 的签名合法不合法呢？

类似的，CA 的数字签名合法不合法也是通过 CA 的证书来证明的。主流操作系统和浏览器里面会提前预置一些 CA 的证书（承认这些是合法的证书），然后所有基于他们认证的签名都会自然被认为合法。

后面章节将介绍的 PKI 体系提供了一套完整的证书管理的框架。