Miserlou/Zappa

OSError: Could not find a suitable TLS CA certificate bundle, invalid path: /etc/ssl/certs/ca-certificates.crt

Closed this issue · 1 comments

Context

I'm deploying the following flask app

from flask import Flask
import requests

APP = Flask(__name__)

@APP.route("/")
def x():
    return requests.get("https://www.google.com")

Any requests lead to the following error

[DEBUG] 2020-07-22T17:45:15.334Z df5c257c-36bf-4087-9a57-9670eb82c344 Zappa Event: {'command': 'autoinvoice.app.x'}
[ERROR] OSError: Could not find a suitable TLS CA certificate bundle, invalid path: /etc/ssl/certs/ca-certificates.crt
Traceback (most recent call last):
  File "/var/task/handler.py", line 602, in lambda_handler
    return LambdaHandler.lambda_handler(event, context)
  File "/var/task/handler.py", line 248, in lambda_handler
    return handler.handler(event, context)
  File "/var/task/handler.py", line 382, in handler
    result = self.run_function(app_function, event, context)
  File "/var/task/handler.py", line 283, in run_function
    result = app_function(event, context) if varargs else app_function()
  File "/var/task/autoinvoice/app.py", line 20, in x
    return str(requests.get("https://www.google.com").status_code)
  File "/var/task/requests/api.py", line 76, in get
    return request('get', url, params=params, **kwargs)
  File "/var/task/requests/api.py", line 61, in request
    return session.request(method=method, url=url, **kwargs)
  File "/var/task/requests/sessions.py", line 530, in request
    resp = self.send(prep, **send_kwargs)
  File "/var/task/requests/sessions.py", line 643, in send
    r = adapter.send(request, **kwargs)
  File "/var/task/requests/adapters.py", line 416, in send
    self.cert_verify(conn, request.url, verify, cert)
  File "/var/task/requests/adapters.py", line 227, in cert_verify
    raise IOError("Could not find a suitable TLS CA certificate bundle, "

Your Environment

  • Zappa version used: Tried 51.0 and 50.0
  • Operating System and Python version: Ubuntu 20.04 LTS Python 3.8.2
  • The output of pip freeze:
aniso8601==8.0.0
appdirs==1.4.3
argcomplete==1.11.1
boto3==1.12.13
botocore==1.15.13
CacheControl==0.12.6
certifi==2019.11.28
cfn-flip==1.2.2
chardet==3.0.4
Click==7.0
colorama==0.4.3
contextlib2==0.6.0
distlib==0.3.0
distro==1.4.0
docutils==0.15.2
durationpy==0.5
Flask==1.1.1
Flask-BasicAuth==0.2.0
Flask-RESTful==0.3.8
future==0.18.2
hjson==3.0.1
html5lib==1.0.1
idna==2.9
importlib-metadata==1.5.0
ipaddr==2.2.0
itsdangerous==1.1.0
Jinja2==2.11.1
jmespath==0.9.5
kappa==0.6.0
lockfile==0.12.2
MarkupSafe==1.1.1
msgpack==0.6.2
packaging==20.3
pep517==0.8.2
pip-tools==4.5.1
placebo==0.9.0
progress==1.5
pyparsing==2.4.6
PyPDF2==1.26.0
python-dateutil==2.8.1
python-slugify==4.0.0
pytoml==0.1.21
pytz==2019.3
PyYAML==5.3
requests==2.23.0
retrying==1.3.3
s3transfer==0.3.3
six==1.14.0
sparkpost==1.3.6
text-unidecode==1.3
toml==0.10.0
tqdm==4.43.0
troposphere==2.6.0
urllib3==1.25.8
webencodings==0.5.1
Werkzeug==1.0.0
wsgi-request-logger==0.4.6
zappa==0.50.0
zipp==3.1.0
  • Your zappa_settings.json:
{
    "dev": {
        "app_function": "autoinvoice.app.APP",
        "aws_region": "eu-central-1",
        "profile_name": "xxxxx",
        "project_name": "autoinvoice",
        "runtime": "python3.8",
        "memory_size": 512,
        "s3_bucket": "autoinvoice-dev-deploy",
        "timeout_seconds": 480,
        "cloudwatch_log_level": "INFO",
        "cloudwatch_data_trace": true,
        "cloudwatch_metrics_enabled": true,
        "events": []
    },
}

I appreciate any help, thanks!

This started working again completely randomly. If you have this issue you can try pip install certifi==2020.6.20, since after doing this it started working for me (even after reinstalling the older version of certifi).
My final working pip freeze:

aniso8601==8.0.0
appdirs==1.4.3
argcomplete==1.12.0
boto3==1.14.26
botocore==1.17.26
CacheControl==0.12.6
certifi==2019.11.28
cfn-flip==1.2.3
chardet==3.0.4
click==7.1.2
colorama==0.4.3
contextlib2==0.6.0
distlib==0.3.0
distro==1.4.0
docutils==0.15.2
durationpy==0.5
Flask==1.1.2
Flask-BasicAuth==0.2.0
Flask-RESTful==0.3.8
future==0.18.2
hjson==3.0.1
html5lib==1.0.1
idna==2.10
ipaddr==2.2.0
itsdangerous==1.1.0
Jinja2==2.11.2
jmespath==0.10.0
kappa==0.6.0
lockfile==0.12.2
MarkupSafe==1.1.1
msgpack==0.6.2
packaging==20.3
pep517==0.8.2
pip-tools==5.2.1
placebo==0.9.0
progress==1.5
pyparsing==2.4.6
python-dateutil==2.6.1
python-slugify==4.0.1
pytoml==0.1.21
pytz==2020.1
PyYAML==5.3.1
requests==2.24.0
retrying==1.3.3
s3transfer==0.3.3
six==1.15.0
text-unidecode==1.3
toml==0.10.1
tqdm==4.48.0
troposphere==2.6.2
urllib3==1.25.10
webencodings==0.5.1
Werkzeug==0.16.1
wsgi-request-logger==0.4.6
zappa==0.51.0