Я использую веб-сервер 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'])