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

时间:2016-09-21 16:57:46

标签: nginx client-certificates

我在Nginx背后的一个基于Flask的小型服务上工作,该服务通过HTTP提供一些内容。它将使用双向证书身份验证 - 我了解如何处理Nginx - 但是用户必须登录并加载他们自己的证书才能用于身份验证。

所以场景是:

  • 用户有一台服务器,用于生成用于客户端身份验证的证书。
  • 他们登录服务以上传其服务器的证书。
  • 从用户服务器获取证书的系统现在可以到达我的服务端点,该端点提供内容并使用证书进行身份验证。

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

我目前的想法是,我允许Web应用程序触发读取Nginx conf文件的脚本,插入新的服务器条目和指定的端口以及上载的cert的路径,并发送HUP信号以重新加载Nginx的。

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

1 个答案:

答案 0 :(得分:0)

经过更多的研究和阅读nginx.com上的一些文档后,我发现我已经过时了。

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

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