initialstate / python_appender

Python implementation of the Initial State events api to easily send data via a super simple python api
https://www.initialstate.com/streaming
MIT License
39 stars 9 forks source link

SSL Certificate issue #10

Open doghousedean opened 5 years ago

doghousedean commented 5 years ago

I have run the example as per the README but getting SSL issues.

% cat test.py
#!/usr/bin/env python3

from ISStreamer.Streamer import Streamer

# Create streamer object

streamer = Streamer(bucket_key="mybucketkey", access_key="myaccesskey")

streamer.log("test","hello")
streamer.log("test","world!")
streamer.log("temperature",19)

streamer.close()
% ./test.py
ship: ISStreamer failed to ship after a number of attempts.
ship: ISStreamer failed to ship after a number of attempts.
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/ISStreamer/Streamer.py", line 130, in __ship
    conn.request('POST', resource, json.dumps(contents), headers)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1229, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1275, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1224, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1016, in _send_output
    self.send(msg)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 956, in send
    self.connect()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1392, in connect
    server_hostname=server_hostname)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 412, in wrap_socket
    session=session
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 853, in _create
    self.do_handshake()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 1117, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/ISStreamer/Streamer.py", line 130, in __ship
    conn.request('POST', resource, json.dumps(contents), headers)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1229, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1275, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1224, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1016, in _send_output
    self.send(msg)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 956, in send
    self.connect()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1392, in connect
    server_hostname=server_hostname)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 412, in wrap_socket
    session=session
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 853, in _create
    self.do_handshake()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 1117, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/ISStreamer/Streamer.py", line 130, in __ship
    conn.request('POST', resource, json.dumps(contents), headers)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1229, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1275, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1224, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1016, in _send_output
    self.send(msg)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 956, in send
    self.connect()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1392, in connect
    server_hostname=server_hostname)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 412, in wrap_socket
    session=session
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 853, in _create
    self.do_handshake()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 1117, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/threading.py", line 917, in _bootstrap_inner
    self.run()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/threading.py", line 865, in run
    self._target(*self._args, **self._kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/ISStreamer/Streamer.py", line 177, in __create_bucket
    self.ship_to_api("/api/buckets", {'bucketKey': new_bucket_key, 'bucketName': new_bucket_name})
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/ISStreamer/Streamer.py", line 173, in ship_to_api
    __ship(3)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/ISStreamer/Streamer.py", line 171, in __ship
    __ship(retry_attempts, 1)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/ISStreamer/Streamer.py", line 171, in __ship
    __ship(retry_attempts, 1)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/ISStreamer/Streamer.py", line 171, in __ship
    __ship(retry_attempts, 1)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/ISStreamer/Streamer.py", line 122, in __ship
    self.MissedEvents.write("{}\n".format(json.dumps(contents)))
ValueError: I/O operation on closed file.
doghousedean commented 5 years ago

I realised I didnt use the install script but the pip install so checked that and I now dont get the SSL issue but do get some errors

ship: ISStreamer failed to ship after a number of attempts.
ship: ISStreamer failed to ship after a number of attempts.
davidsulpy commented 5 years ago

@doghousedean the certificate error you posted above looks like a client certificate bundle issue (what device/os are you using?)

As for the second error, have you ensured that your access key is correct in the script that you're running?