elasticsearch-certgen
编辑elasticsearch-certgen
编辑在 6.1 版本中已弃用。
已由 elasticsearch-certutil
替代。
elasticsearch-certgen
命令简化了用于 Elastic Stack 的证书颁发机构 (CA)、证书签名请求 (CSR) 和签名证书的创建。尽管此命令已弃用,但您无需替换它创建的 CA、CSR 或证书。
概要
编辑bin/elasticsearch-certgen (([--cert <cert_file>] [--days <n>] [--dn <name>] [--key <key_file>] [--keysize <bits>] [--pass <password>] [--p12 <password>]) | [--csr]) [-E <KeyValuePair>] [-h, --help] [--in <input_file>] [--out <output_file>] ([-s, --silent] | [-v, --verbose])
描述
编辑默认情况下,该命令以交互模式运行,系统会提示您输入有关每个实例的信息。实例是指需要传输层安全性 (TLS) 或 SSL 证书的 Elastic Stack 的任何部分。根据您的配置,Elasticsearch、Logstash、Kibana 和 Beats 都可能需要证书和私钥。
每个实例所需的最小值是一个名称。这可以简单地是主机名,它将用作证书的公用名。您也可以使用完整的专有名称。IP 地址和 DNS 名称是可选的。多个值可以指定为逗号分隔的字符串。如果未提供 IP 地址或 DNS 名称,您可能需要在 TLS 或 SSL 配置中禁用主机名验证。
根据您指定的参数,系统还会提示您输入必要的信息,例如输出文件的路径和 CA 私钥密码。
elasticsearch-certgen
命令还支持静默模式操作,以方便批量操作。有关详细信息,请参阅 在静默模式下使用 elasticsearch-certgen
。
输出文件是一个 zip 文件,其中包含每个实例的签名证书和私钥。如果您选择生成 CA,这是默认行为,则证书和私钥将包含在输出文件中。如果您选择生成 CSR,则应将它们提供给您的商业或组织特定的证书颁发机构,以获取签名证书。签名证书必须为 PEM 格式才能与 Elastic Stack 安全功能一起使用。
参数
编辑-
--cert <cert_file>
- 指定使用
<cert_file>
参数中提供的现有 CA 证书生成新的实例证书和密钥。此参数不能与-csr
参数一起使用。 -
--csr
- 指定以证书签名请求模式操作。
-
--days <n>
- 指定一个整数值,表示生成的密钥有效的天数。默认值为
1095
。此参数不能与-csr
参数一起使用。 -
--dn <name>
- 定义用于生成的 CA 证书的专有名称。默认值为
CN=Elastic Certificate Tool Autogenerated CA
。此参数不能与-csr
参数一起使用。 -
-E <KeyValuePair>
- 配置设置。
-
-h, --help
- 返回所有命令参数。
-
--in <input_file>
- 指定用于在静默模式下运行的文件。输入文件必须是 YAML 文件,如 在静默模式下使用
elasticsearch-certgen
中所述。 -
--key <key_file>
- 指定 CA 证书的私钥文件。每当使用
-cert
参数时,都必须提供此参数。 -
--keysize <bits>
- 定义在生成的 RSA 密钥中使用的位数。默认值为
2048
。 -
--out <output_file>
- 指定输出文件的路径。
-
--pass <password>
- 指定 CA 私钥的密码。如果提供了
-key
参数,则这是现有私钥文件的密码。否则,这是应应用于生成的 CA 密钥的密码。此参数不能与-csr
参数一起使用。 -
--p12 <password>
- 为每个实例证书和密钥生成 PKCS#12 (
.p12
或.pfx
) 容器文件。生成的文件受提供的密码保护,密码可以为空。此参数不能与-csr
参数一起使用。 -
-s, --silent
- 显示最少的输出。
-
-v, --verbose
- 显示详细输出。
示例
编辑在静默模式下使用 elasticsearch-certgen
编辑要使用静默模式操作,您必须创建一个包含有关实例信息的 YAML 文件。它必须与以下格式匹配
instances: - name: "node1" ip: - "192.0.2.1" dns: - "node1.mydomain.com" - name: "node2" ip: - "192.0.2.2" - "198.51.100.1" - name: "node3" - name: "node4" dns: - "node4.mydomain.com" - "node4.internal" - name: "CN=node5,OU=IT,DC=mydomain,DC=com" filename: "node5"
实例的名称。这可以是一个简单的字符串值,也可以是一个专有名称 (DN)。这是唯一必需的字段。 |
|
一个可选的字符串数组,表示此实例的 IP 地址。允许使用 IPv4 和 IPv6 值。这些值将作为主题备用名称添加。 |
|
一个可选的字符串数组,表示此实例的 DNS 名称。这些值将作为主题备用名称添加。 |
|
用于此实例的文件名。此名称用作输出中包含实例文件的目录的名称。它也用于目录中文件的名称。此文件名不应有扩展名。注意:如果为实例提供的 |
当您的 YAML 文件准备就绪后,您可以使用 elasticsearch-certgen
命令生成证书或证书签名请求。只需使用 -in
参数指定文件的位置。例如
bin/elasticsearch-certgen -in instances.yml
此命令会生成 CA 证书和私钥,以及 YAML 文件中列出的实例的证书和私钥。