AttributeError: 'module' object has no attribute 'PROTOCOL_SSLv3'
On Debian stretch it seems impossible to deploy ffdn-db from scratch.
$ python manage.py db create
Traceback (most recent call last):
File "manage.py", line 97, in <module>
manager.run()
File "/tmp/ffdn-db/venv/local/lib/python2.7/site-packages/flask_script/__init__.py", line 405, in run
result = self.handle(sys.argv[0], sys.argv[1:])
File "/tmp/ffdn-db/venv/local/lib/python2.7/site-packages/flask_script/__init__.py", line 382, in handle
app = self.create_app(**app_config)
File "/tmp/ffdn-db/venv/local/lib/python2.7/site-packages/flask_script/__init__.py", line 139, in create_app
return self.app(**kwargs)
File "/tmp/ffdn-db/ffdnispdb/__init__.py", line 47, in create_app
from .views import ispdb
File "/tmp/ffdn-db/ffdnispdb/views.py", line 19, in <module>
from . import forms, utils
File "/tmp/ffdn-db/ffdnispdb/forms.py", line 17, in <module>
from ispformat.validator import validate_geojson
File "/tmp/ffdn-db/venv/src/isp-format/ispformat/validator/__init__.py", line 2, in <module>
from ispformat.validator.schemavalidator import *
File "/tmp/ffdn-db/venv/src/isp-format/ispformat/validator/schemavalidator.py", line 4, in <module>
from jsonschema import Draft4Validator, RefResolver, draft4_format_checker
File "/tmp/ffdn-db/venv/local/lib/python2.7/site-packages/jsonschema/__init__.py", line 18, in <module>
from jsonschema.validators import (
File "/tmp/ffdn-db/venv/local/lib/python2.7/site-packages/jsonschema/validators.py", line 8, in <module>
import requests
File "/tmp/ffdn-db/venv/local/lib/python2.7/site-packages/requests/__init__.py", line 53, in <module>
from .packages.urllib3.contrib import pyopenssl
File "/tmp/ffdn-db/venv/local/lib/python2.7/site-packages/requests/packages/urllib3/contrib/pyopenssl.py", line 43, in <module>
ssl.PROTOCOL_SSLv3: OpenSSL.SSL.SSLv3_METHOD,
AttributeError: 'module' object has no attribute 'PROTOCOL_SSLv3'
This is because on Debian (jessie and stretch), openssl is compiled without support for SSLv3 (cf. changelogs below). ffdn-db currently depends on python-requests v2.1.0 which is incompatible with this change in openssl.
I suggest upgrading python-requests to version 2.5.0 at least, where missing support for SSLv3 is catched properly.
Changelog of openssl in jessie:
openssl (1.0.1j-1)
[...]
- Disables SSLv3 because of CVE-2014-3566
Changelog of openss in stretch:
openssl (1.0.2~beta3-1)
[...]
- Merge changes between 1.0.1h-3 and 1.0.1j-1:
- Disables SSLv3 because of CVE-2014-3566