轮换 SSL/TLS CA 证书
编辑轮换 SSL/TLS CA 证书
编辑在某些情况下,您可能希望轮换已配置的证书颁发机构 (CA),例如,如果所选 CA 即将过期。请参阅以下步骤,了解如何在连接的组件之间轮换证书。
轮换 Fleet Server CA
编辑Elastic Agent 与 Fleet Server 通信以接收策略并检查更新。有两种方法可以在 Fleet Server 上轮换 CA 证书以用于来自 Elastic Agent 的连接。第一种方法需要 Elastic Agent 重复注册 Fleet Server 一次或多次。第二种方法避免了重新注册,并需要用新的证书覆盖现有的 CA 文件。
选项 1:通过 Elastic Agent 重新注册来更新 Fleet Server 上即将过期的 CA 证书
使用此方法,配置了旧的或即将过期的 CA 的 Elastic Agent 将使用新的 CA 重新注册 Fleet Server。
-
使用新的 Fleet Server CA 更新 Elastic Agent
Elastic Agent 应该已经配置了 CA。使用
elastic-agent enroll
命令使用更新的、逗号分隔的 CA 集重新注册代理。elastic-agent enroll \ --url=<Fleet-Server-URL> \ --enrollment-token=<enrollment-token> \ ... \ --certificate-authorities <original_CA, new_CA>
新的代理注册将导致 Fleet 中出现新的代理。这可能会被认为是中断性的,但是旧的代理条目将转换为脱机状态。需要新的代理注册才能修改 Fleet Server 配置以接受多个证书颁发机构。
此时,所有 TLS 连接仍在依赖最初提供的 CA (
original_CA
) 以对 Fleet Server 证书进行身份验证。 -
轮换 Fleet Server 上的证书
此过程将根据新的 CA 重新颁发新证书。使用所有新证书重新注册 Fleet Server。
elastic-agent enroll ... --url=<Fleet-Server-URL> \ --enrollment-token=<enrollment-token> \ ... \ --fleet-server-cert <new_cert> --certificate-authorities <new_CA>
这将导致与 Elastic Agent 的 TLS 连接重置,并将相关的新 CA 和证书加载到 Fleet Server 配置中。
-
Elastic Agent 将作为其正常操作的一部分自动建立新的 TLS 连接。
步骤 1 中安装的代理上的新 CA (
new_CA
) 将用于对 Fleet Server 使用的证书进行身份验证。请注意,如果原始 CA (
original CA
) 已泄露,则可能需要将其从代理的 CA 列表中删除。为此,您需要再次注册代理。elastic-agent enroll ... --url=<Fleet-Server-URL> \ --enrollment-token=<enrollment-token> \ ... \ --certificate-authorities <new_CA>
选项 2:在不重新注册 Elastic Agent 的情况下更新 Elasticsearch 上即将过期的 CA 证书
选项 1 会导致多次 Elastic Agent 注册。另一个避免多次注册的选项是使用新的 CA 或证书覆盖 CA 文件。此方法使用包含多个 CA 的单个文件,可以替换该文件。
要使用此选项,假设
-
Elastic Agent 已经使用包含证书颁发机构的文件注册。
elastic-agent enroll ... --url=<Fleet-Server-URL> \ --enrollment-token=<enrollment-token> \ ... \ --certificate-authorities=<CA.pem>
-
运行 Fleet Server 的 Elastic Agent 已经使用以下安全连接选项注册,其中每个选项都指向包含证书和密钥的文件
elastic-agent enroll ... --url=<Fleet-Server-URL> \ --enrollment-token=<enrollment-token> \ ... \ --certificate-authorities=<CA.pem> \ --fleet-server-cert=<fleet-cert.pem> \ --fleet-server-cert-key=<key.pem>
更新 Elastic Agent 和 Fleet Server 配置
-
通过更改
CA.pem
的内容以包含新的 CA 来更新配置。cat new_ca.pem >> CA.pem
-
重新启动 Elastic Agent。请注意,这不是重新注册。重新启动将强制 Elastic Agent 重新加载 CA。
elastic-agent restart
-
对于运行 Fleet Server 的 Elastic Agent,请使用新的证书覆盖原始的
certificate
、certificate-key
和certificate-authority
。cat new-cert.pem > cert.pem cat new-key.pem > key.pem cat new_ca.pem > CA.pem
-
重新启动运行 Fleet Server 的 Elastic Agent。
elastic-agent restart
-
如果需要从 Elastic Agent 中删除原始证书,请仅使用新的 CA 覆盖
CA.pem
。cat new_ca.pem > CA.pem
-
最后,再次重新启动 Elastic Agent。
elastic-agent restart
轮换 Elasticsearch CA 以用于来自 Fleet Server 的连接
编辑Fleet Server 与 Elasticsearch 通信,将有关 Elastic Agent 的状态信息发送到 Fleet,并检索更新的策略以发送到注册到给定策略的所有 Elastic Agent。如果您已 在本地部署 Fleet Server,则可能希望轮换已配置的 CA 证书,例如,如果证书即将过期。
轮换 Elasticsearch 上的 CA 证书以用于来自 Fleet Server 的连接
-
使用新的 Fleet Server CA 更新 Fleet Server
运行 Fleet Server 的 Elastic Agent 应该已经配置了 CA。使用
elastic-agent enroll
命令使用更新的、逗号分隔的 CA 集重新注册运行 Fleet Server 的代理。elastic-agent enroll \ --fleet-server-es=<Elasticsearch-URL> \ --fleet-server-service-token=<service-token> \ ... \ --fleet-server-es-ca <original_ES_CA, new_ES_CA>
新的代理注册将导致 Fleet 中出现两个 Fleet Server 代理。这可能会被认为是中断性的,但是旧的代理条目将转换为脱机状态。需要新的代理注册才能修改 Fleet Server 配置以接受多个证书颁发机构。
此时,所有 TLS 连接仍在依赖最初提供的 CA (
original_ES_CA
) 以对 Elasticsearch 证书进行身份验证。重新注册 Fleet Server 将导致通过该 Fleet Server 的代理也重置其 TLS,但连接将根据需要重新建立。 -
轮换 Elasticsearch 上的证书。
Elasticsearch 将使用基于新的 Elasticsearch CA 的新证书。由于 Fleet Server 在链中具有原始和新的 Elasticsearch CA,因此它将接受来自 Elasticsearch 的原始和新证书。
请注意,如果原始 Elasticsearch CA (
original_ES CA
) 已泄露,则可能需要将其从 Fleet Server 的 CA 列表中删除。为此,您需要再次注册 Fleet Server 代理(如果重新注册令人担忧,则使用文件保存证书和证书颁发机构)。elastic-agent enroll \ --fleet-server-es=<Elasticsearch-URL> \ --fleet-server-service-token=<service-token> \ ... \ --fleet-server-es-ca <new_ES_CA>
轮换 Elasticsearch CA 以用于来自 Elastic Agent 的连接
编辑Elastic Agent 使用 Fleet Server 传递的策略中的配置信息收集数据并将其发送到 Elasticsearch。
轮换 Elasticsearch 上的 CA 证书以用于来自 Elastic Agent 的连接
- 在 Fleet 中打开 设置 选项卡。
- 在 输出 部分中,单击需要证书轮换的 Elasticsearch 输出的编辑按钮。
-
在 Elasticsearch CA 可信指纹 字段中,添加要使用的新可信指纹。这是用于自签名 Elasticsearch 证书的证书颁发机构的 SHA-256 指纹(哈希值)。此指纹将用于验证 Elasticsearch 提供的自签名证书。
如果此证书在握手期间存在于链中,它将添加到
certificate_authorities
列表中,握手将正常继续。