Ошибка запуска Flask с самозаверяющими сертификатами "Нет такого файла или каталога" - PullRequest
0 голосов
/ 03 ноября 2018

Выполнение теста для Flask + самоподписанные сертификаты на основе этого руководства

Настольный сервер:

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
    return '<html><head></head><body><p>blabla</body></html>'

if __name__ == "__main__":
    app.run(debug=True, host='0.0.0.0', port=443, ssl_context=('cert.pem', 'key.pem'))

Я сгенерировал сертификат, используя:

openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 365

И когда я запускаю сервер (sudo python test.py) Я получаю следующую ошибку:

Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/home/abuyoyo/.local/lib/python2.7/site-packages/werkzeug/serving.py", line 774, in inner
    fd=fd)
  File "/home/abuyoyo/.local/lib/python2.7/site-packages/werkzeug/serving.py", line 660, in make_server
    passthrough_errors, ssl_context, fd=fd)
  File "/home/abuyoyo/.local/lib/python2.7/site-packages/werkzeug/serving.py", line 601, in __init__
    self.socket = ssl_context.wrap_socket(sock, server_side=True)
  File "/home/abuyoyo/.local/lib/python2.7/site-packages/werkzeug/serving.py", line 511, in wrap_socket
    ssl_version=self._protocol, **kwargs)
  File "/usr/lib/python2.7/ssl.py", line 949, in wrap_socket
    ciphers=ciphers)
  File "/usr/lib/python2.7/ssl.py", line 560, in __init__
    self._context.load_cert_chain(certfile, keyfile)
IOError: [Errno 2] No such file or directory

Я привязал абсолютные пути к сертификатам, пробовал неправильные пути, но каждый раз получаю одну и ту же ошибку.

1 Ответ

0 голосов
/ 03 ноября 2018

Проблема с разрешениями для пути.

Перемещение сертификатов в / tmp решило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...