ssl-settings.asciidoc 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. ==== {component} TLS/SSL settings
  2. You can configure the following TLS/SSL settings.
  3. ifdef::server[]
  4. +{ssl-prefix}.ssl.enabled+::
  5. (<<static-cluster-setting,Static>>)
  6. Used to enable or disable TLS/SSL. The default is `false`.
  7. endif::server[]
  8. +{ssl-prefix}.ssl.supported_protocols+::
  9. (<<static-cluster-setting,Static>>)
  10. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-supported-protocols]
  11. ifdef::server[]
  12. +{ssl-prefix}.ssl.client_authentication+::
  13. (<<static-cluster-setting,Static>>)
  14. Controls the server's behavior in regard to requesting a certificate
  15. from client connections. Valid values are `required`, `optional`, and `none`.
  16. `required` forces a client to present a certificate, while `optional`
  17. requests a client certificate but the client is not required to present one.
  18. ifndef::client-auth-default[]
  19. Defaults to `none`.
  20. endif::client-auth-default[]
  21. ifdef::client-auth-default[]
  22. Defaults to +{client-auth-default}+.
  23. endif::client-auth-default[]
  24. endif::server[]
  25. ifdef::verifies[]
  26. +{ssl-prefix}.ssl.verification_mode+::
  27. (<<static-cluster-setting,Static>>)
  28. Controls the verification of certificates.
  29. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-verification-mode-values]
  30. endif::verifies[]
  31. +{ssl-prefix}.ssl.cipher_suites+::
  32. (<<static-cluster-setting,Static>>)
  33. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-cipher-suites-values]
  34. [#{ssl-context}-tls-ssl-key-trusted-certificate-settings]
  35. ===== {component} TLS/SSL key and trusted certificate settings
  36. The following settings are used to specify a private key, certificate, and the
  37. trusted certificates that should be used when communicating over an SSL/TLS connection.
  38. ifdef::server[]
  39. A private key and certificate must be configured.
  40. endif::server[]
  41. ifndef::server[]
  42. A private key and certificate are optional and would be used if the server requires client authentication for PKI
  43. authentication.
  44. endif::server[]
  45. ===== PEM encoded files
  46. When using PEM encoded files, use the following settings:
  47. +{ssl-prefix}.ssl.key+::
  48. (<<static-cluster-setting,Static>>)
  49. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-key-pem]
  50. +{ssl-prefix}.ssl.key_passphrase+::
  51. (<<static-cluster-setting,Static>>)
  52. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-key-passphrase]
  53. +{ssl-prefix}.ssl.secure_key_passphrase+::
  54. (<<secure-settings,Secure>>)
  55. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-secure-key-passphrase]
  56. +{ssl-prefix}.ssl.certificate+::
  57. (<<static-cluster-setting,Static>>)
  58. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-certificate]
  59. +{ssl-prefix}.ssl.certificate_authorities+::
  60. (<<static-cluster-setting,Static>>)
  61. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-certificate-authorities]
  62. ===== Java keystore files
  63. When using Java keystore files (JKS), which contain the private key, certificate
  64. and certificates that should be trusted, use the following settings:
  65. +{ssl-prefix}.ssl.keystore.path+::
  66. (<<static-cluster-setting,Static>>)
  67. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-keystore-path]
  68. +{ssl-prefix}.ssl.keystore.password+::
  69. (<<static-cluster-setting,Static>>)
  70. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-keystore-password]
  71. +{ssl-prefix}.ssl.keystore.secure_password+::
  72. (<<secure-settings,Secure>>)
  73. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-keystore-secure-password]
  74. +{ssl-prefix}.ssl.keystore.key_password+::
  75. (<<static-cluster-setting,Static>>)
  76. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-keystore-key-password]
  77. +{ssl-prefix}.ssl.keystore.secure_key_password+::
  78. (<<secure-settings,Secure>>)
  79. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-keystore-secure-key-password]
  80. +{ssl-prefix}.ssl.truststore.path+::
  81. (<<static-cluster-setting,Static>>)
  82. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-truststore-path]
  83. +{ssl-prefix}.ssl.truststore.password+::
  84. (<<static-cluster-setting,Static>>)
  85. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-truststore-password]
  86. +{ssl-prefix}.ssl.truststore.secure_password+::
  87. (<<secure-settings,Secure>>)
  88. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-truststore-secure-password]
  89. [#{ssl-context}-pkcs12-files]
  90. ===== PKCS#12 files
  91. {es} can be configured to use PKCS#12 container files (`.p12` or `.pfx` files)
  92. that contain the private key, certificate and certificates that should be trusted.
  93. PKCS#12 files are configured in the same way as Java keystore files:
  94. +{ssl-prefix}.ssl.keystore.path+::
  95. (<<static-cluster-setting,Static>>)
  96. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-keystore-path]
  97. +{ssl-prefix}.ssl.keystore.type+::
  98. (<<static-cluster-setting,Static>>)
  99. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-keystore-type-pkcs12]
  100. +{ssl-prefix}.ssl.keystore.password+::
  101. (<<static-cluster-setting,Static>>)
  102. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-keystore-password]
  103. +{ssl-prefix}.ssl.keystore.secure_password+::
  104. (<<secure-settings,Secure>>)
  105. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-keystore-secure-password]
  106. +{ssl-prefix}.ssl.keystore.key_password+::
  107. (<<static-cluster-setting,Static>>)
  108. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-keystore-key-password]
  109. +{ssl-prefix}.ssl.keystore.secure_key_password+::
  110. (<<secure-settings,Secure>>)
  111. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-keystore-secure-key-password]
  112. +{ssl-prefix}.ssl.truststore.path+::
  113. (<<static-cluster-setting,Static>>)
  114. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-truststore-path]
  115. +{ssl-prefix}.ssl.truststore.type+::
  116. (<<static-cluster-setting,Static>>)
  117. Set this to `PKCS12` to indicate that the truststore is a PKCS#12 file.
  118. //TBD:Should this use the ssl-truststore-type-pkcs11 or ssl-truststore-type definition and default values?
  119. +{ssl-prefix}.ssl.truststore.password+::
  120. (<<static-cluster-setting,Static>>)
  121. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-truststore-password]
  122. +{ssl-prefix}.ssl.truststore.secure_password+::
  123. (<<secure-settings,Secure>>)
  124. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-truststore-secure-password]
  125. [#{ssl-context}-pkcs11-tokens]
  126. ===== PKCS#11 tokens
  127. {es} can be configured to use a PKCS#11 token that contains the private key,
  128. certificate and certificates that should be trusted.
  129. PKCS#11 token require additional configuration on the JVM level and can be enabled
  130. via the following settings:
  131. +{ssl-prefix}.keystore.type+::
  132. (<<static-cluster-setting,Static>>)
  133. Set this to `PKCS11` to indicate that the PKCS#11 token should be used as a keystore.
  134. //TBD: Is the default value `jks`?
  135. +{ssl-prefix}.truststore.type+::
  136. (<<static-cluster-setting,Static>>)
  137. include::{es-repo-dir}/settings/common-defs.asciidoc[tag=ssl-truststore-type-pkcs11]
  138. [NOTE]
  139. When configuring the PKCS#11 token that your JVM is configured to use as
  140. a keystore or a truststore for Elasticsearch, the PIN for the token can be
  141. configured by setting the appropriate value to `ssl.truststore.password`
  142. or `ssl.truststore.secure_password` in the context that you are configuring.
  143. Since there can only be one PKCS#11 token configured, only one keystore and
  144. truststore will be usable for configuration in {es}. This in turn means
  145. that only one certificate can be used for TLS both in the transport and the
  146. http layer.