Cert/client 使用不同证书的多个客户端使用 Nginx 进行身份验证

Cert/client authentication with Nginx with multiple clients using different certs

我正在开发基于 Nginx 的小型 Flask 服务,该服务通过 HTTP 提供一些内容。它将使用双向证书身份验证来实现这一点——我知道如何使用 Nginx——但用户必须登录并加载他们自己的证书,该证书将用于 auth 部分。

所以场景是:

我在 Nginx 文档中找不到任何内容表明我可以拥有 Nginx 查看的单个密钥库或目录以匹配传入请求的证书。我知道我可以在 Nginx 中配置这个 'per-server'。

我目前的想法是,我允许网络应用程序触发读取 Nginx conf 文件的脚本,插入一个新的服务器条目和一个指定的端口,其中包含上传证书的路径,然后发送 HUP 信号重新加载 Nginx。

我想知道社区中是否有人在使用 Nginx 之前做过类似的事情,或者他们是否有更好的解决方案来解决我提出的奇怪情况。

经过大量研究并阅读了一些关于 nginx.com 的文档后,我发现我把它复杂化了。

我应该在 /etc/nginx/conf.d/ 中添加和删除配置文件,而不是在 sites-available 中修改我的配置,然后通过调用 sudo nginx -s reload.

告诉 Nginx 重新加载

我会让应用程序调用一个脚本来 运行 需要的命令,并将脚本添加到 www-data 用户的 sudoers 文件中。