HTTPS的证书验证过程通常包括以下几个步骤:
- 客户端向服务端发起HTTPS请求,服务端将其公钥证书发送给客户端。
- 客户端接收到服务端的证书后,首先验证证书是否过期,如果过期,则证书无效,验证失败;如果证书未过期,则进行下一步。
- 客户端使用CA证书(如系统内置的或者从服务端获取)对服务端证书进行验证,以确定该证书是否是由受信任的CA颁发的。如果验证失败,则证书无效,验证失败;如果验证成功,则进行下一步。
- 客户端生成一个随机值,使用服务端公钥进行加密,并将加密后的随机值发送给服务端。
- 服务端接收到客户端的随机值后,使用私钥进行解密,得到随机值。服务端再将随机值作为密钥,使用对称加密算法加密需要传输的数据,并发送给客户端。
- 客户端接收到服务端发送的加密数据后,使用随机值进行解密,得到明文数据。
以上就是HTTPS证书验证的一般流程。客户端验证服务端证书的方式是通过验证证书的数字签名来确定证书的合法性,如果数字签名验证失败,则证书无效,验证失败。