我们的Web应用程序托管在.com域上,但在不同的国家/地区使用。该应用程序在简单的SSL证书上运行,但是我们考虑使用EV证书。在每个国家/地区,我们都有不同的本地公司,因此我们考虑为每个国家/地区拥有EV证书。

nginx是否可以基于IP地址或至少URL中的路径(/en/home//it/.../fr/...)提供不同的SSL EV证书?

谢谢。

最佳答案

我知道从单个Nginx实例提供不同证书的最好方法是通过域名。 (理论上可以基于客户端IP发送不同的证书,但我认为Nginx不支持此功能。由于在路径传输之前进行SSL协商,因此无法使用URL路径。)

假设您的网站是www.example.com。首先,设置国家或地区特定的子域,例如es.example.com,fr.example.com等。

然后,您可以像geoip module中那样使用this tutorial将流量重定向到适当的子域。

设置完成后,您可以为每个子域定义不同的nginx服务器块,每个块都有自己的证书。这将使用SNI根据请求的域名来确定SSL协商期间要使用的适当证书。您还需要包括默认的通配符证书,因为并非所有浏览器都支持SNI。

10-01 13:03
查看更多