将 ssl 证书信息从 nginx 传递到flask

xbl*_*etm 3 python ssl nginx uwsgi

我正在设置一个 REST API 供我公司控制的客户使用。我已经在 Flask-restless 上构建了它,并使用 uWSGI 和 nginx 为其提供服务。

为了验证客户端身份和安全性,我们使用相互 SSL 证书。因此,通信通道是安全的,客户端会提供证书进行身份验证。

尽管 nginx 确实验证了证书,但我需要从 Flask 应用程序内访问证书信息,以便我只能授予对某些端点和/或选择数据的访问权限。

问题是我如何将证书信息传递给 Flask 应用程序。

xbl*_*etm 6

修复!

uwsgi_param YOUR_NAME_HERE $variable;您只需在 nginx conf 文件中导出即可。

就我的目的而言,它看起来像这样

uwsgi_param CLIENT_VERIFY $ssl_client_verify;
uwsgi_param CLIENT_CERT $ssl_client_s_dn;
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你!这个答案今天仍然具有现实意义。还有很多其他选项 http://nginx.org/en/docs/http/ngx_http_ssl_module.html#variables 可以满足每个人的需求。 (2认同)