SSL Error (bad handshake) with valid certificate | Elasticsearch & Python
You need to install certificate first, and then use it in connection to Elasticsearch
with Python
host = 'mydomain.com:9200'client = Elasticsearch(host, http_auth=('admin', 'pass'), scheme="https", use_ssl=True, ca_certs='C:/my_path/CertificateFile.cer.pem', port=443)try: info = json.dumps(client.info(), indent=4) print ("Elasticsearch client info():", info)except exceptions.ConnectionError as err: print ("\nElasticsearch info() ERROR:", err) print ("\nThe client host:", host, "is invalid or cluster is not running") client = None
Response:
> Elasticsearch client info(): {> "name": "my_name",> "cluster_name": "my_cluster_name",> "cluster_uuid": "fBRShbkSRy2vcfQJZsojGA",> "version": {> "number": "7.3.0",> "build_flavor": "default",> "build_type": "tar",> "build_hash": "de777fa",> "build_date": "2019-07-24T18:30:11.767338Z",> "build_snapshot": false,> "lucene_version": "8.1.0",> "minimum_wire_compatibility_version": "6.8.0",> "minimum_index_compatibility_version": "6.0.0-beta1"> },> "tagline": "You Know, for Search" }
elasticsearch.yml:
xpack.security.enabled: truexpack.ml.enabled: falsexpack.security.transport.ssl.enabled: truexpack.security.transport.ssl.verification_mode: certificatexpack.security.transport.ssl.keystore.path: elastic-certificates.p12xpack.security.transport.ssl.truststore.path: elastic-certificates.p12xpack.security.http.ssl.enabled: truexpack.security.http.ssl.keystore.path: elastic-certificates.p12xpack.security.http.ssl.truststore.path: elastic-certificates.p12