当对安全有更高要求的时候,你需要使用 HTTPS 协议加密通信数据,防止中间人攻击和数据被篡改等安全风险;
HTTPS 是利用非对称加密实现身份认证和密钥协商,因此使用 HTTPS 协议的时候,你需要使用 CA 证书给 client 生成证书才能访问
我们可以使用下面的 openssl 命令查看 client 证书的内容,x509 client 证书含有证书版本、序列号、签名算法、签发者、有效期、主体名等信息,我们重点要关注的是主体名中的 CN 字段;
# openssl x509 -noout -text -in client.pem ...
在 etcd 中,如果你使用了 HTTPS 协议并启用了 client 证书认证 (–client-cert-auth),它会取 CN 字段作为用户名,如果 CN=alice,则 alice 就是 client 发送请求的用户名;
特性特征
证书认证在稳定、性能都优于密码认证;
1)稳定:它不存在 Token 过期、使用更加方便、会让你少踩坑,避免了不少 Token 失效而触发的 Bug;
2)性能:证书认证无需像密码认证一样调用昂贵的密码认证操作 (Authenticate 请求),此接口支持的性能极低;