Моя цель - развернуть простое веб-приложение на основе Flask, используя Fabmanager, обслуживаемый по HTTPS, и включить аутентификацию OAuth2.Хотя я могу создать простое скелетное приложение и развернуть его достаточно быстро, образец не может быть легко расширен для поддержки HTTPS.Итак, я подумал о том, чтобы установить обратный прокси-сервер Apache2 перед приложением FAB, при этом Apache обслуживал HTTPS и передавал его через HTTP для приложения FAB.Однако проблема в том, что redirect-uri, сгенерированный приложением FAB, устанавливает протокол поверх HTTP, а не HTTPS.Вот подробные сведения о URL-адресе перенаправления Oauth2, созданном приложением -
- Доступ к приложению по адресу https://redacted.compute.amazonaws.com:8080/login/
- Перенаправление на - https://redacted.amazoncognito.com/oauth2/authorize?response_type=code&client_id=&redirect_uri=http://**incorrect protocol.compute.amazonaws.com: 8080 / oauth-authorised / & scope = openid + email + profile
В качестве альтернативы я попытался изучить как консольный сценарий FAB, так и связанный с ним werkzeugобслуживающий сценарий для принудительной установки HTTPS в приложении.Я сделал это, установив библиотеку PyOpenSSL в моей виртуальной среде и используя контекст SSL.Тем не менее, я получаю ошибки при запуске приложения -
Traceback (последний вызов был последним): файл "/usr/lib/python3.6/threading.py", строка 916, в файле _bootstrap_inner self.run () "/usr/lib/python3.6/threading.py ", строка 864, запускается файл self._target (* self._args, ** self._kwargs)" /home/ubuntu/mplogin/lib/python3.6/site-packages/werkzeug/serving.py ", строка774, во внутреннем fd = fd) файле "/home/ubuntu/mplogin/lib/python3.6/site-packages/werkzeug/serving.py", строка 660, в файле make_server passthrough_errors, ssl_context, fd = fd) File "/home / ubuntu / mplogin / lib / python3.6 / site-packages / werkzeug / serve.py ", строка 601, в init self.socket = ssl_context.wrap_socket (sock, server_side = True) AttributeError:У объекта 'Context' нет атрибута 'wrap_socket'
Большое спасибо за ваш ответ!