but try connecting over curl it's not working since SSL is self sign
if try with curl insecure mode it's working fine
i just want to setup basic auth username password even do not want protocol HTTPS. will work if it's http. i do not want to add any type certificate webserver side and manage it when making connection to ES cluster.
Those are bootstrap checks forced by elasticsearch cluster
When you enable security and you force nodes to bootstrap on external IP, SSL is a must
and yes of course your app need the certificate to communicate with elasticsearch cluster
This will work fine as you are sure everything is only for internal uses ....
enabling SSL between nodes, clients and elasticsearch cluster, kibana ... etc is a must to secure exchanges on the network even if basic authentification is enabled
Now if you enable SSL, Yes of course you need to send the cert to the app, here is an example with nodeJS
# If your Elasticsearch is protected with basic authentication, these settings provide
# the username and password that the Kibana server uses to perform maintenance on the Kibana
# index at startup. Your Kibana users still need to authenticate with Elasticsearch, which
# is proxied through the Kibana server.
elasticsearch.username: "kbn_user"
elasticsearch.password: "changeme"
# Enables SSL and paths to the PEM-format SSL certificate and SSL key files, respectively.
# These settings enable SSL for outgoing requests from the Kibana server to the browser.
server.ssl.enabled: true
server.ssl.certificate: /es/labs/kibana/config/meetup.crt
server.ssl.key: /es/labs/kibana/config/meetup.key
# Optional settings that provide the paths to the PEM-format SSL certificate and key files.
# These files are used to verify the identity of Kibana to Elasticsearch and are required when
# xpack.security.http.ssl.client_authentication in Elasticsearch is set to required.
elasticsearch.ssl.certificate: /es/labs/kibana/config/meetup.crt
elasticsearch.ssl.key: /es/labs/kibana/config/meetup.key
# Optional setting that enables you to specify a path to the PEM file for the certificate
# authority for your Elasticsearch instance.
elasticsearch.ssl.certificateAuthorities: [ "/es/labs/kibana/config/ca.crt" ]
You can do that, however it will prevent a some features (e.g. API Keys) from being enabled.
No, if you run a cluster on https, then the client needs to decide whether to trust the certificate that is provided by the server. There are 3 main ways that could happen:
Your server uses a certificate that is issued by one of the default issuing authorities (CAs) that your client already trusts.
Your client is configured to trust a specific certificate or CA for this specific connection (e.g. using the --cacert option to curl)
Your client just trusts everything (e.g. the --insecure option to curl).
Any of those will be more secure than turning off ssl.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.