HTTPS证书
网站要升级到HTTPS,必不可少的就是HTTPS证书,其作为各种信息的承载体,是证明网站可信的重要凭证,本文的目的在于帮助理解HTTPS证书作为可信凭证的实现原理。
HTTPS概述
HTTPS即HTTP+TLS,在HTTP与TCP之间加入一个加密层,中间传输节点在不知道密钥的前提下,难以破解双方传输的内容。这个加密层协议称为SSL(Secure Sockets Layer)或TLS(Transport Layer Security),TLS是SSL标准化过程中,升级到某个版本后顺便改了个名字。
非对称加密算法
简要描述非对称算法的特点,便于理解后面涉及的知识。
- 非对称加密算法生成一对密钥A和B,密钥A加密的内容可用密钥B解密,反之亦然
- 根据用途不同,公开给他人的称为公钥,自己持有的称为私钥
- 用密钥对传输内容签名,使用公钥可以确认内容完整未被篡改
// 用privateKey对内容content签名,通过publicKey验证
sign = encrypt(MD5(content), privateKey);
success = decrypt(sign, publicKey) === MD5(content);
证书的可信度
TLS协议握手阶段,客户端依赖网站服务器的公钥发送加密消息,以确保只有拥有私钥的网站服务器才能解密。证书是公钥