当前位置: 首页 > 知识库问答 >
问题:

将$SSL_CLIENT_S_DN从NGINX/UWSGI传递到flask应用程序

谈旺
2023-03-14

我正在运行一个带有uwsginginx的Python web服务器,基映像为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参数,但找不到如何接收。

环顾四周,我发现它应该驻留在flaskrequest.environ对象中,但是在打印环境内容时,我没有看到任何这样的键。

在通过邮递员发送请求时,request.environ.keys()返回以下内容以供参考:

dict_keys.input“、”wsgi.file_wrapper“、”wsgi.version“、”wsgi.errors“、”wsgi.run_once“、”wsgi.multithread“、”wsgi.multiprocess“、”wsgi.url_scheme“、”uwsgi.version“、”uwsgi.node“、”wwkzeug.request“)

共有1个答案

陆晓博
2023-03-14

显然,这是由于docker映像暴露的配置限制造成的。

见https://github.com/tiangolo/uwsgi-nginx-flask-docker/issues/103

现在可以完全覆盖nginx.conf,而以前我只覆盖app.conf

无论如何,这是一个最有效的小变通方法,在/app/prestart.sh:

#!/usr/bin/env bash
ex -sc '%s/include uwsgi_params;/include uwsgi_params; uwsgi_param SSL_CLIENT_S_DN $ssl_client_s_dn;/g|x' /etc/nginx/conf.d/nginx.conf
 类似资料:
  • Supported tags and respective Dockerfile links python3.9, latest (Dockerfile) python3.8, (Dockerfile) python3.7, (Dockerfile) python3.6 (Dockerfile) Discouraged tags python3.8-alpine (Dockerfile) To l

  • 问题内容: 我看过类似的论坛,但无法获得任何有效的解决方案。我正在尝试将变量从Flask传递到我的JavaScript文件。这些值将用于我的JavaScript文件中的PubNub。 这是我的Python代码的一部分: 这是我的JavaScript代码(app.js)的一部分: 如果我在Settings.html文件中使用了此代码,而在app.js文件中却没有使用,则此代码有效。 问题答案: 该m

  • 问题内容: 我知道如何使用jinja模板将数据从python传递到javascript,但是我想将javascript变量传递到python。我想这样做而无需重新加载页面。那可能吗? 问题答案: 是的,就像monkut所说的那样-我相信您想使用JSON和Javascript / jQuery。 这将允许从客户端到服务器的通讯,然后再返回。 我发现的最适用的示例是在Flask片段/模式中:http

  • 问题内容: 我在烧瓶上创建了一个端点,该端点从数据库查询(远程数据库)生成电子表格,然后将其作为下载内容发送到浏览器中。Flask不会抛出任何错误。Uwsgi没有抱怨。 但是当我检查nginx的error.log时,我看到了很多 2014/12/10 05:06:24 [错误] 14084#0:* 239436上游过早关闭连接,同时从上游读取响应头,客户端:34.34.34.34,服务器:me.c

  • 我试图设置NGINX,uWSGI和烧瓶。我目前正在得到, uWSGI错误 找不到Python应用程序 我得到了一些奇怪的错误在我的uwsgi错误文件,你可以在我的文章底部找到。 我会直截了当地说,这是在运行Ubuntu 13.04 64位的新VPS上,这些是我运行的命令。 sudo apt-get更新 sudo apt-get安装构建基本 sudo apt-get安装python-dev sudo