我们的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。