基于 Nginx Path 的客户端 TLS 验证

Kee*_*eto 3 ssl nginx https

我在谷歌上搜索了一下,似乎 nginx 没有提供一种基于路径进行客户端 TLS 验证的方法。我只是想问社区情况是否仍然如此,或者是否有某种解决方法。

我基本上是想拥有一个管理页面domain-name/admin,其中访问公共域名只需要服务器端 TLS 验证,但我只想对 /admin 路径进行双向 TLS 验证。这甚至可能而无需为管理员获取新域吗?

小智 5

这样做的原因是因为 nginx 直到 TLS 层设置之后才会学习路径(请求的一部分),因此它无法及时返回并改变要求客户端证书的想法。

另一种解决方法可能是将 /admin 重定向到另一个主机名 egadmin.domain-name (您需要一个通配符证书),然后它应该能够在该级别强制执行客户端证书。

否则,如果您尝试将客户端证书设为可选,则每个客户端都会弹出一个对话框,要求他们选择客户端证书。