ETCD 部署并启用证书认证

这篇博客详细介绍了如何部署ETCD并启用证书认证。首先,通过特定方式生成证书,确保server证书的usages包含适当选项以避免认证问题。然后,统一配置包括数据目录和证书目录,并解释了各证书的作用。接着,描述了在三台机器上的部署规划,包括下载二进制包、解压和启动服务的步骤。最后,提到了使用god守护ETCD的配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

证书生成

证书生成的方式非常多,同类的文档也很容易找到,这里推荐此篇文章:https://coreos.com/os/docs/latest/generate-self-signed-certificates.html,但是由于etcd的特殊性,server端配置的证书,也会被用于去进行客户端认证,因此需要在 server 的 usages 里面加上:client auth选项,否则会出现此种问题:certificate specifies an incompatible key usage

下面是完整的ca-config.json内容:

{
   
   
    "signing": {
   
   
        "default": {
   
   
            "expiry": "43800h"
        },
        "profiles": {
   
   
            "server": {
   
   
                "expiry": "43800h",
                "usages": [
                    "signing",
                    "key encipherment",
                    "server auth",
                    "client auth" // 此处需要特别注意,由于etcd实现方式不同,server的证书也会用于进行客户端认证,此选项必须的
                ]
            },
            "client": {
   
   
                "expiry": "43800h",
                "usages": [
                    "signing",
                    "key encipherment",
                    "client auth"
                ]
            },
            "peer": {
   
   
                "expiry": "43800h",
                "usages": [
                    "signing",
                    "key encipherment",
                    "server auth",
                    "client auth"
                ]
            }
        }
    }
}

还有需要注意的点就是在生成 server证书的时候,hosts字段需要加上etcd全部节点的IP/主机名信息及127.0.0.1,peer证书可以统一,也可以分别生成,如果需要统一,则需要在hosts字段加上所有节点的IP/主机名信息,如果分开生成,则hosts字段只需要填写对应节点的IP/主机名信息即可

编写配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值