数字证书
TLS/SSL 数字证书就像是互联网世界的“数字身份证”和“安全锁”,它的核心作用是在客户端(如您的浏览器)和服务器(如网站服务器)之间建立一条安全可靠的加密通信通道。
证书核心结构包含:
- 服务器身份信息(域名 / IP、组织名称等)
- 证书有效期、用途、签发机构等元数据
- 数字签名(由证书签发者用私钥生成),对证书进行签名,在法律层面,电子签名与手写签名具有同等的法律效力,不可否认。
- 服务器公钥(用于加密和验签),任何人都可以用它来验证签名是否由对应的私钥生成
证书类型
- 自签名证书(Self-Signed Certificate):由服务器自己生成、自己签名的证书,签发者和使用者是同一主体
- CA 签名证书(CA-Signed Certificate):由权威第三方证书颁发机构(CA,如 Let's Encrypt、DigiCert 等)验证服务器身份后签发的证书
原理:
- 非对称加密与对称加密结合:在建立连接的初始“握手”阶段,使用非对称加密(如RSA算法)来安全地交换信息,协商出一个只有通信双方知道的“会话密钥”。此后的通信则使用速度更快的对称加密(如AES算法)和这个会话密钥来加密实际传输的数据。这种结合方式既保证了密钥交换的安全,又兼顾了传输效率。
- 基于证书的身份验证:当你的浏览器访问一个HTTPS网站时,网站服务器会将其TLS/SSL证书发送给浏览器。证书中包含网站的公钥、所属组织、颁发机构(CA)等信息。浏览器会检查该证书是否由受信任的CA签发、是否在有效期内、是否与正在访问的网站域名匹配等。这套验证机制能有效防止你连接到假冒网站。
认证模式
单向认证(最常用):客户端不需要自己的证书,只需要验证服务器的证书即可完成 TLS 握手
双向认证(高安全场景):服务器不仅要向客户端出示证书,还会要求客户端出示自己的证书