文档首页/ 云证书管理服务 CCM/ 常见问题/ 其他/ SSL证书管理类/ SSL 单向认证和双向认证说明
更新时间:2025-07-10 GMT+08:00

SSL 单向认证和双向认证说明

HTTPS在HTTP的基础上加入了SSL协议(Secure Sockets Layer)即“安全套接层”协议,对信息、数据加密,用来保证数据传输的安全,SSL支持单向认证和双向认证两种认证方式。

  • 单向认证:客户端与服务端连接时,客户端需要验证所连接的服务端是否正确。
  • 双向认证:客户端与服务端连接时,除了客户端需要验证所连接的服务器是否正确之外,服务端也需要验证接入的客户端是否正确。

应用场景

SLL单向认证适用于客户端只需验证服务端身份的场景,如网站访问这类无需在通讯层做用户身份验证,而应用逻辑层足以保障安全的情况。

SSL双向认证机制保证服务器端与客户端能互相验证对方的身份,主要目的是防止中间人攻击,确保通信的安全性和可靠性。这种机制一般使用在需要高安全性的场景中,例如银行、金融服务、物联网、企业内部服务或政府服务等涉及隐私信息,或只对特定客户端提供服务的场景中。

弹性负载均衡 ELB 可在创建HTTPS监听器时,配置单向认证或双向认证,具体操作请参见通过ELB部署HTTPS单向认证或双向认证

功能原理

  • SSL单向认证
    图1 单向认证

    1. 客户端向服务端发送SSL协议版本号、加密算法种类、随机数等信息。
    2. 服务端给客户端返回SSL协议版本号、加密算法种类、随机数等信息,以及服务端的证书,即公钥证书。
    3. 客户端使用服务端返回的信息验证服务端SSL证书的合法性,包括:证书是否过期、发行服务器证书的CA是否可靠、返回的公钥是否能正确解开返回证书中的数字签名、服务器证书上的域名是否和服务器的实际域名相匹配,验证通过后,将继续进行通信,否则终止通信。
    4. 客户端随机产生对称加密密钥,并用服务端的公钥(服务端的公钥从步骤2中的服务端的证书中获得)对其加密,然后发送给服务端。
    5. 服务端收到客户端发送的加密信息后,使用私钥进行解密,获取对称加密密钥。
    6. 在接下来的会话中,客户端和服务端将会使用该对称加密密钥进行通信,保证通信过程中信息的安全。
  • SSL双向认证
    图2 双向认证

    1. 客户端向服务端发送SSL协议版本号、加密算法种类、随机数等信息。
    2. 服务端给客户端返回SSL协议版本号、加密算法种类、随机数等信息,以及服务端的证书,即公钥证书。
    3. 客户端使用服务端返回的信息验证服务端SSL证书的合法性,包括:证书是否过期、发行服务器证书的CA是否可靠、返回的公钥是否能正确解开返回证书中的数字签名、服务器证书上的域名是否和服务器的实际域名相匹配,验证通过后,将继续进行通信,否则终止通信。
    4. 服务端要求客户端发送客户端的证书,客户端将自己的证书和公钥发送至服务端。
    5. 服务端验证客户端的证书,通过继续进行通信,否则断开连接。
    6. 客户端随机产生对称加密密钥,并用服务端的公钥(服务端的公钥从步骤2中的服务端的证书中获得)对其加密,然后发送给服务端。
    7. 服务端收到客户端发送的加密信息后,使用服务端的私钥进行解密,获取对称加密密钥。
    8. 在接下来的会话中,客户端和服务端将会使用该对称加密密钥进行通信,保证通信过程中信息的安全。