Передайте $ ssl_client_s_dn из nginx / uwsgi в приложение фляги - PullRequest
0 голосов
/ 01 ноября 2018

Я использую веб-сервер Python с uWSGI и nginx, с базовым образом tiangolo/uwsgi-nginx-flask.

Я хочу передать DN своего сертификата клиента, если он существует. Для этого я определил следующее nginx.conf:

uwsgi_read_timeout 300;

ssl_certificate     /app/cert.pem;
ssl_certificate_key /app/key.pem;
ssl_password_file   /app/password.pass;

ssl_client_certificate  /app/client-ca.crt;
ssl_verify_client optional;
ssl_verify_depth 2;

include uwsgi_params;
uwsgi_param HTTP_X_DN $ssl_client_s_dn;

Я хочу, чтобы мой код Flask получил параметр HTTP_X_DN, но не могу найти, как.

Посмотрев вокруг, я обнаружил, что он должен находиться в request.environ объекте flask, но я не вижу такой клавиши при печати содержимого среды.

Для справки, request.environ.keys() возвращает следующее при отправке запроса почтальоном:

dict_keys (['QUERY_STRING', 'REQUEST_METHOD', 'CONTENT_TYPE', 'CONTENT_LENGTH', 'REQUEST_URI', 'PATH_INFO', 'DOCUMENT_ROOT', 'SERVER_PROTOCOL', 'REQUEST_SCHEME', 'HTTPS', 'REMOTE_ADDR', «REMOTE_PORT», «SERVER_PORT», «SERVER_NAME», «HTTP_CONTENT_TYPE», 'HTTP_CACHE_CONTROL', 'HTTP_POSTMAN_TOKEN', 'HTTP_USER_AGENT', «HTTP_ACCEPT», «HTTP_HOST», «HTTP_ACCEPT_ENCODING», 'HTTP_CONTENT_LENGTH', 'HTTP_CONNECTION', 'wsgi.input', 'wsgi.file_wrapper', 'wsgi.version', 'wsgi.errors', 'wsgi.run_once', 'wsgi.multithread', 'wsgi.multiprocess', 'wsgi.url_scheme', 'uwsgi.version', 'uwsgi.node', 'werkzeug.request'])

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