非对称加密中证书的相关知识
工作中总是会遇到与证书相关的问题,每次都要查一遍才能想起来,为此把现在能想到的证书相关知识捋一遍以加深记忆!
1. 证书的含义与结构
在客户端与服务端通信的这个经典场景中,如何保证客户端和服务器端使用同一套密钥系统进行通信是首要问题,而证书的原意之一是要解决如何在网络上安全的传递密钥的问题。(这里的密钥指的是非对称加密中的公钥,因为私钥是不允许传递的)
通常,通信双方各自都会有一对公钥和私钥,证书中除了会保存公钥之外,还会保存一份签名文件。
- 证书中的公钥是明文存储,这里“明文存储”的意思是没有进行任何加密的存储。
- 签名文件是用来证明证书合法性的依据。
签名文件是经过“另一次非对称加密”后得到结果,这里的“另一次非对称加密”的来源决定了这个证书是否是自签名证书。
- 如果来源是CA,那么就是标准的证书。
- 如果来源就是证书中所保存的公钥所对应的密钥对,那么就是自签名证书。
自签名证书一般只会用在本地调试时使用,但是有些网站为了避免CA签名所产生的高额费用,也采用自签名证书,此时浏览器在访问时会提出警告。
2. 证书和密钥的格式
证书的格式一般是X.509,公钥和密钥的常用格式有.pem和.der两种,.pem是有头尾标识并且经过了base64转换的格式,.der是二进制格式。