开启「验证客户端证书」开关后,EMQX 会在客户端连接使用证书时进行验证。
但如果客户端没有证书,会根据开关「没有证书则 SSL 失败」的状态,有不同的行为。
- 验证客户端证书=true, 没有证书则SSL失败=true
- 客户端使用证书连接,并且证书验证成功,则 TLS 握手成功。继续连接流程
- 客户端无证书,TLS 握手失败。客户端不能连接。
- 验证客户端证书=true, 没有证书则SSL失败=false
- 客户端使用证书连接,并且证书验证成功,则 TLS 握手成功。继续连接流程
- 客户端无证书,TLS 握手成功。继续连接流程
- 验证客户端证书=false,此时 有证书则SSL失败 选项只能为 false
- 此时无论客户端是否使用证书进行连接。都将握手成功。