Diagnose password setup connection failures
Self-managed deployments are Elastic Stack deployments managed without the assistance of an orchestrator. Availability This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes.
Self-managed
Generally available
The elasticsearch-setup-passwords command sets passwords for the built-in users by sending user management API requests. If your cluster uses SSL/TLS for the HTTP (REST) interface, the command attempts to establish a connection with the HTTPS protocol. If the connection attempt fails, the command fails.
The elasticsearch-setup-passwords tool is deprecated and will be removed in a future release. To manually reset the password for the built-in users (including the elastic user), use the elasticsearch-reset-password tool, the Elasticsearch change password API, or the user management features in Kibana.
Symptoms:
Elasticsearch is running HTTPS, but the command fails to detect it and returns the following errors:
Shell Cannot connect to elasticsearch node. java.net.SocketException: Unexpected end of file from server ... ERROR: Failed to connect to elasticsearch at http://127.0.0.1:9200/_security/_authenticate?pretty. Is the URL correct and elasticsearch running?SSL/TLS is configured, but trust cannot be established. The command returns the following errors:
Shell SSL connection to https://127.0.0.1:9200/_security/_authenticate?pretty failed: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target Check the elasticsearch SSL settings under xpack.security.http.ssl. ... ERROR: Failed to establish SSL connection to elasticsearch at https://127.0.0.1:9200/_security/_authenticate?pretty.The command fails because hostname verification fails, which results in the following errors:
Shell SSL connection to https://idp.localhost.test:9200/_security/_authenticate?pretty failed: java.security.cert.CertificateException: No subject alternative DNS name matching elasticsearch.example.com found. Check the elasticsearch SSL settings under xpack.security.http.ssl. ... ERROR: Failed to establish SSL connection to elasticsearch at <ELASTICSEARCH_HOST_URL>:9200/_security/_authenticate?pretty.
Resolution:
- If your cluster uses TLS/SSL for the HTTP interface but the
elasticsearch-setup-passwordscommand attempts to establish a non-secure connection, use the--urlcommand option to explicitly specify an HTTPS URL. Alternatively, set thexpack.security.http.ssl.enabledsetting totrue. - If the command does not trust the Elasticsearch server, verify that you configured the
xpack.security.http.ssl.certificate_authoritiessetting or thexpack.security.http.ssl.truststore.pathsetting. - If hostname verification fails, you can disable this verification by setting
xpack.security.http.ssl.verification_modetocertificate.
For more information about these settings, see Security settings.