J'essaie de configurer un serveur Flask qui utilise un contexte OpenSSL. Cependant, depuis que j'ai déplacé le script sur un autre serveur, il continue de générer l'erreur suivante, peu importe si j'utilise = Python 2.7 ou 3.4 et quelle que soit la méthode SSL que j'ai choisie (SSLv23/TLSv1/...):
File "/usr/lib/python3.4/threading.py", line 920, in _bootstrap_inner
self.run()
File "/usr/lib/python3.4/threading.py", line 868, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/lib/python3.4/dist-packages/werkzeug/serving.py", line 602, in inner
passthrough_errors, ssl_context).serve_forever()
File "/usr/local/lib/python3.4/dist-packages/werkzeug/serving.py", line 506, in make_server
passthrough_errors, ssl_context)
File "/usr/local/lib/python3.4/dist-packages/werkzeug/serving.py", line 450, in __init__
self.socket = ssl_context.wrap_socket(self.socket,
AttributeError: 'Context' object has no attribute 'wrap_socket'
Le code correspondant ci-dessous:
if __name__ == "__main__":
context = SSL.Context(SSL.SSLv23_METHOD)
context.use_privatekey_file('key.key')
context.use_certificate_file('cert.crt')
app.run(Host='0.0.0.0', port=80, ssl_context=context, threaded=True, debug=True)
Merci beaucoup d'avance! Je suis heureux pour toute aide
Depuis la version 0.10, Werkzeug ne prend plus en charge les contextes OpenSSL. Cette décision a été prise car il est plus facile de prendre en charge ssl.SSLContext
sur Python. Votre option pour réécrire ce code est celle-ci:
if __name__ == "__main__":
context = ('cert.crt', 'key.key')
app.run(Host='0.0.0.0', port=80, ssl_context=context, threaded=True, debug=True)
Voir http://werkzeug.pocoo.org/docs/latest/serving/ pour toutes les possibilités.