0

I'm trying to run a basic SMS script (please see below).

To get around the error that follows the script below, I've tried:

  1. Disabling SSL for testing in in the Twilio console
  2. Installing the .pem file from here: https://curl.haxx.se/docs/caextract.html to a folder and then following steps here (except referenceing the ca-cert.pem filename).
# Download the helper library from https://www.twilio.com/docs/python/install
from twilio.rest import Client

# Your Account Sid and Auth Token from twilio.com/console
# DANGER! This is insecure. See http://twil.io/secure
account_sid = '###############################'
auth_token = '##############################'
client = Client(account_sid, auth_token)

message = client.messages \
                .create(
                     body="Join Earth's mightiest heroes. Like Kevin Bacon.",
                     from_='+########',
                     to='+########'
                 )

print(message.sid)

I get the below error.

C:\Users\######\AppData\Local\Continuum\Anaconda3\envs\untitled3\python.exe "C:/Users/######/PycharmProjects/untitled3/twilio sms alerts.py"
Traceback (most recent call last):
  File "C:\Users\######\AppData\Local\Continuum\Anaconda3\envs\untitled3\lib\site-packages\urllib3\connectionpool.py", line 677, in urlopen
    chunked=chunked,
  File "C:\Users\######\AppData\Local\Continuum\Anaconda3\envs\untitled3\lib\site-packages\urllib3\connectionpool.py", line 381, in _make_request
    self._validate_conn(conn)
  File "C:\Users\######\AppData\Local\Continuum\Anaconda3\envs\untitled3\lib\site-packages\urllib3\connectionpool.py", line 978, in _validate_conn
    conn.connect()
  File "C:\Users\######\AppData\Local\Continuum\Anaconda3\envs\untitled3\lib\site-packages\urllib3\connection.py", line 371, in connect
    ssl_context=context,
  File "C:\Users\######\AppData\Local\Continuum\Anaconda3\envs\untitled3\lib\site-packages\urllib3\util\ssl_.py", line 384, in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
  File "C:\Users\######\AppData\Local\Continuum\Anaconda3\envs\untitled3\lib\ssl.py", line 423, in wrap_socket
    session=session
  File "C:\Users\######\AppData\Local\Continuum\Anaconda3\envs\untitled3\lib\ssl.py", line 870, in _create
    self.do_handshake()
  File "C:\Users\######\AppData\Local\Continuum\Anaconda3\envs\untitled3\lib\ssl.py", line 1139, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1091)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\######\AppData\Local\Continuum\Anaconda3\envs\untitled3\lib\site-packages\requests\adapters.py", line 449, in send
    timeout=timeout
  File "C:\Users\######\AppData\Local\Continuum\Anaconda3\envs\untitled3\lib\site-packages\urllib3\connectionpool.py", line 727, in urlopen
    method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
  File "C:\Users\######\AppData\Local\Continuum\Anaconda3\envs\untitled3\lib\site-packages\urllib3\util\retry.py", line 439, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api.twilio.com', port=443): Max retries exceeded with url: /2010-04-01/Accounts/#############################/Messages.json (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1091)')))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/Users/######/PycharmProjects/untitled3/twilio sms alerts.py", line 14, in <module>
    to='+16167455489'
  File "C:\Users\######\AppData\Local\Continuum\Anaconda3\envs\untitled3\lib\site-packages\twilio\rest\api\v2010\account\message\__init__.py", line 89, in create
    payload = self._version.create(method='POST', uri=self._uri, data=data, )
  File "C:\Users\######\AppData\Local\Continuum\Anaconda3\envs\untitled3\lib\site-packages\twilio\base\version.py", line 200, in create
    allow_redirects=allow_redirects,
  File "C:\Users\######\AppData\Local\Continuum\Anaconda3\envs\untitled3\lib\site-packages\twilio\base\version.py", line 47, in request
    allow_redirects=allow_redirects
  File "C:\Users\######\AppData\Local\Continuum\Anaconda3\envs\untitled3\lib\site-packages\twilio\base\domain.py", line 46, in request
    allow_redirects=allow_redirects
  File "C:\Users\######\AppData\Local\Continuum\Anaconda3\envs\untitled3\lib\site-packages\twilio\rest\__init__.py", line 136, in request
    allow_redirects=allow_redirects
  File "C:\Users\######\AppData\Local\Continuum\Anaconda3\envs\untitled3\lib\site-packages\twilio\http\http_client.py", line 94, in request
    timeout=timeout if timeout is not None else self.timeout,
  File "C:\Users\######\AppData\Local\Continuum\Anaconda3\envs\untitled3\lib\site-packages\requests\sessions.py", line 643, in send
    r = adapter.send(request, **kwargs)
  File "C:\Users\######\AppData\Local\Continuum\Anaconda3\envs\untitled3\lib\site-packages\requests\adapters.py", line 514, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='api.twilio.com', port=443): Max retries exceeded with url: /2010-04-01/Accounts/##################################/Messages.json (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1091)')))

Process finished with exit code 1

1 Answers1

0

You are probably using a virtual environment. In my case I am using Anaconda and this was my solution to this problem:

(source: https://github.com/conda/conda/issues/8273)

I cite:

My workaround: I have copied the following files

  • libcrypto-1_1-x64.*
  • libssl-1_1-x64.*

from D:\Anaconda3\Library\bin to D:\Anaconda3\DLLs.

And it works as a charm!

blackgreen
  • 34,072
  • 23
  • 111
  • 129
LGW
  • 1