| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 | [role="xpack"][testenv="gold+"][[certgen]]== elasticsearch-certgendeprecated[6.1,Replaced by <<certutil,`elasticsearch-certutil`>>.]The `elasticsearch-certgen` command simplifies the creation of certificateauthorities (CA), certificate signing requests (CSR), and signed certificatesfor use with the Elastic Stack. Though this command is deprecated, you do notneed to replace CAs, CSRs, or certificates that it created.[float]=== Synopsis[source,shell]--------------------------------------------------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])--------------------------------------------------[float]=== DescriptionBy default, the command runs in interactive mode and you are prompted forinformation about each instance. An instance is any piece of the Elastic Stackthat requires a Transport Layer Security (TLS) or SSL certificate. Depending onyour configuration, {es}, Logstash, {kib}, and Beats might all require acertificate and private key.The minimum required value for each instance is a name. This can simply be thehostname, which is used as the Common Name of the certificate. You can also usea full distinguished name. IP addresses and DNS names are optional. Multiplevalues can be specified as a comma separated string. If no IP addresses or DNSnames are provided, you might disable hostname verification in your TLS or SSLconfiguration.Depending on the parameters that you specify, you are also prompted fornecessary information such as the path for the output file and the CA privatekey password.The `elasticsearch-certgen` command also supports a silent mode of operation toenable easier batch operations. For more information, see <<certgen-silent>>.The output file is a zip file that contains the signed certificates and privatekeys for each instance. If you chose to generate a CA, which is the defaultbehavior, the certificate and private key are included in the output file. Ifyou chose to generate CSRs, you should provide them to your commercial ororganization-specific certificate authority to obtain signed certificates. Thesigned certificates must be in PEM format to work with the {stack}{security-features}.[float]=== Parameters`--cert <cert_file>`:: Specifies to generate new instance certificates and keysusing an existing CA certificate, which is provided in the `<cert_file>` argument.This parameter cannot be used with the `-csr` parameter.`--csr`:: Specifies to operate in certificate signing request mode.`--days <n>`::Specifies an integer value that represents the number of days the generated keysare valid. The default value is `1095`. This parameter cannot be used with the`-csr` parameter.`--dn <name>`::Defines the _Distinguished Name_ that is used for the generated CA certificate.The default value is `CN=Elastic Certificate Tool Autogenerated CA`.This parameter cannot be used with the `-csr` parameter.`-E <KeyValuePair>`:: Configures a setting.`-h, --help`:: Returns all of the command parameters.`--in <input_file>`:: Specifies the file that is used to run in silent mode. Theinput file must be a YAML file, as described in <<certgen-silent>>.`--key <key_file>`:: Specifies the _private-key_ file for the CA certificate.This parameter is required whenever the `-cert` parameter is used.`--keysize <bits>`::Defines the number of bits that are used in generated RSA keys. The defaultvalue is `2048`.`--out <output_file>`:: Specifies a path for the output file.`--pass <password>`:: Specifies the password for the CA private key.If the `-key` parameter is provided, then this is the password for the existingprivate key file. Otherwise, it is the password that should be applied to thegenerated CA key. This parameter cannot be used with the `-csr` parameter.`--p12 <password>`::Generate a PKCS#12 (`.p12` or `.pfx`) container file for each of the instancecertificates and keys. The generated file is protected by the supplied password,which can be blank. This parameter cannot be used with the `-csr` parameter.`-s, --silent`:: Shows minimal output.`-v, --verbose`:: Shows verbose output.[float]=== Examples[float][[certgen-silent]]==== Using `elasticsearch-certgen` in Silent ModeTo use the silent mode of operation, you must create a YAML file that containsinformation about the instances. It must match the following format:[source, yaml]--------------------------------------------------instances:  - name: "node1" <1>    ip: <2>      - "192.0.2.1"    dns: <3>      - "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" <4>--------------------------------------------------<1> The name of the instance. This can be a simple string value or can be aDistinguished Name (DN). This is the only required field.<2> An optional array of strings that represent IP Addresses for this instance.Both IPv4 and IPv6 values are allowed. The values are added as SubjectAlternative Names.<3> An optional array of strings that represent DNS names for this instance.The values are added as Subject Alternative Names.<4> The filename to use for this instance. This name is used as the name of thedirectory that contains the instance's files in the output. It is also used inthe names of the files within the directory. This filename should not have anextension. Note: If the `name` provided for the instance does not represent avalid filename, then the `filename` field must be present.When your YAML file is ready, you can use the `elasticsearch-certgen` command togenerate certificates or certificate signing requests. Simply use the `-in`parameter to specify the location of the file. For example:[source, sh]--------------------------------------------------bin/elasticsearch-certgen -in instances.yml--------------------------------------------------This command generates a CA certificate and private key as well as certificatesand private keys for the instances that are listed in the YAML file.
 |