# Python SSL Error

**URL:** <https://discuss.elastic.co/t/python-ssl-error/189407>\
**Category:** Elasticsearch\
**Created:** [July 8, 2019, 6:55pm UTC](https://discuss.elastic.co/t/python-ssl-error/189407 "2019-07-08T18:55:41Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![adwaitjoshi](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/adwaitjoshi/32/35098_2.png) [@adwaitjoshi](https://discuss.elastic.co/u/adwaitjoshi)\
**Post date:** [July 8, 2019, 6:55pm UTC](https://discuss.elastic.co/t/python-ssl-error/189407/1 "2019-07-08T18:55:41Z")

</div>

I am trying to use the following code

import elasticsearch

es = elasticsearch.Elasticsearch(es\_protocol+'://'+es\_host+':'+es\_port,http\_auth=(\_user,\_pass),verify\_certs=None)

es.indices.create(index=index\_name, ignore=400)

return 1;

However I get an error

Error: 0: pyembed: ConnectionError([SSL: CERTIFICATE\_VERIFY\_FAILED] certificate verify failed (\_ssl.c:618)) caused by: SSLError([SSL: CERTIFICATE\_VERIFY\_FAILED] certificate verify failed (\_ssl.c:618))

Its a self signed certificate hence the verify\_certs is set to none. Any ideas what might be the issue?

---

<div class="post-metadata">

**Author:** ![TimV](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/timv/32/13162_2.png) [@TimV](https://discuss.elastic.co/u/TimV)\
**Post date:** [July 9, 2019, 9:08am UTC](https://discuss.elastic.co/t/python-ssl-error/189407/2 "2019-07-09T09:08:40Z")

</div>

> [@adwaitjoshi](#):
>
> Its a self signed certificate hence the verify\_certs is set to none.

You need to set `verify_certs` to `False` if you want to disable verification.

---

<div class="post-metadata">

**Author:** ![adwaitjoshi](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/adwaitjoshi/32/35098_2.png) [@adwaitjoshi](https://discuss.elastic.co/u/adwaitjoshi)\
**Post date:** [July 9, 2019, 2:57pm UTC](https://discuss.elastic.co/t/python-ssl-error/189407/3 "2019-07-09T14:57:04Z")

</div>

I have tried that as well. Still the same error!

---

<div class="post-metadata">

**Author:** ![adwaitjoshi](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/adwaitjoshi/32/35098_2.png) [@adwaitjoshi](https://discuss.elastic.co/u/adwaitjoshi)\
**Post date:** [July 9, 2019, 3:06pm UTC](https://discuss.elastic.co/t/python-ssl-error/189407/4 "2019-07-09T15:06:34Z")

</div>

My latest combo is

es = elasticsearch.Elasticsearch([es\_host+':'+es\_port],http\_auth=(\_user,\_pass),use\_ssl=True,verify\_certs=False,ssl\_show\_warn=False)

---

<div class="post-metadata">

**Author:** ![adwaitjoshi](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/adwaitjoshi/32/35098_2.png) [@adwaitjoshi](https://discuss.elastic.co/u/adwaitjoshi)\
**Post date:** [July 11, 2019, 7:33pm UTC](https://discuss.elastic.co/t/python-ssl-error/189407/5 "2019-07-11T19:33:44Z")

</div>

Anyone?

---

<div class="post-metadata">

**Author:** ![adwaitjoshi](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/adwaitjoshi/32/35098_2.png) [@adwaitjoshi](https://discuss.elastic.co/u/adwaitjoshi)\
**Post date:** [July 13, 2019, 7:58pm UTC](https://discuss.elastic.co/t/python-ssl-error/189407/6 "2019-07-13T19:58:59Z")

</div>

Bump

---

<div class="post-metadata">

**Author:** ![adwaitjoshi](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/adwaitjoshi/32/35098_2.png) [@adwaitjoshi](https://discuss.elastic.co/u/adwaitjoshi)\
**Post date:** [July 13, 2019, 9:12pm UTC](https://discuss.elastic.co/t/python-ssl-error/189407/7 "2019-07-13T21:12:49Z")

</div>

For the sake of everyone verify\_certs is deprecated, I got this to work using this link [https://github.com/elastic/elasticsearch-py/issues/712](https://github.com/elastic/elasticsearch-py/issues/712)

---

<div class="post-metadata">

**Author:** ![dvisz-inf](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dvisz-inf/32/42617_2.png) [@dvisz-inf](https://discuss.elastic.co/u/dvisz-inf)\
**Post date:** [July 14, 2019, 6:04pm UTC](https://discuss.elastic.co/t/python-ssl-error/189407/8 "2019-07-14T18:04:43Z")

</div>

@adwaitjoshi it would be good practice to set up a CA, or simply get a free SSL certificate from a widely supported CA if you own a domain name.

---

<div class="post-metadata">

**Author:** ![adwaitjoshi](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/adwaitjoshi/32/35098_2.png) [@adwaitjoshi](https://discuss.elastic.co/u/adwaitjoshi)\
**Post date:** [July 14, 2019, 6:16pm UTC](https://discuss.elastic.co/t/python-ssl-error/189407/9 "2019-07-14T18:16:22Z")

</div>

All of our machines are off the internet and communicate over private IPs.

---

<div class="post-metadata">

**Author:** ![dvisz-inf](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dvisz-inf/32/42617_2.png) [@dvisz-inf](https://discuss.elastic.co/u/dvisz-inf)\
**Post date:** [July 16, 2019, 7:25pm UTC](https://discuss.elastic.co/t/python-ssl-error/189407/10 "2019-07-16T19:25:46Z")

</div>

@adwaitjoshi it sounds like you're saying you don't need authentication. If that is really the case, then why do you need encryption?

---

<div class="post-metadata">

**Author:** ![adwaitjoshi](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/adwaitjoshi/32/35098_2.png) [@adwaitjoshi](https://discuss.elastic.co/u/adwaitjoshi)\
**Post date:** [July 16, 2019, 7:36pm UTC](https://discuss.elastic.co/t/python-ssl-error/189407/11 "2019-07-16T19:36:55Z")

</div>

I did not say I dont need authentication. What I said was a "self signed certificate" serves our purpose because our IPs are private and machines are private.

---

<div class="post-metadata">

**Author:** ![EZprogramming](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ezprogramming/32/57291_2.png) [@EZprogramming](https://discuss.elastic.co/u/EZprogramming)\
**Post date:** [July 16, 2019, 9:09pm UTC](https://discuss.elastic.co/t/python-ssl-error/189407/12 "2019-07-16T21:09:19Z")

</div>

You can use this piece of code to connect to your index via your python code.

```
es = Elasticsearch([myHost], http_auth=(username, password))
if not es.indices.exists(index=myIndex):
	es.indices.create(index=myIndex, body=myIndexMap)
res = es.index(index=myIndex,doc_type='_doc', body=dictionary)
```

---

<div class="post-metadata">

**Author:** ![dvisz-inf](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dvisz-inf/32/42617_2.png) [@dvisz-inf](https://discuss.elastic.co/u/dvisz-inf)\
**Post date:** [July 17, 2019, 12:38am UTC](https://discuss.elastic.co/t/python-ssl-error/189407/13 "2019-07-17T00:38:28Z")

</div>

My mistake. I tend to regard self-signed certificate as being as good as no authentication, but that isn't actually true!

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [August 14, 2019, 12:38am UTC](https://discuss.elastic.co/t/python-ssl-error/189407/14 "2019-08-14T00:38:28Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
