我有一个 Nginx 反向代理设置,并且可以很好地使用 SSL 证书(标准和多 SAN)。如果我使用标准 SSL 设置虚拟服务器(例如 mysite.com),则一切都很好。如果我在浏览器中将域名 mysite.co.uk 添加到同一虚拟服务器,我会收到错误消息,提示该网站的证书无效。
我明白为什么我会收到此错误消息,我想知道的是,我是否可以使用 Nginx 将 mysite.co.uk 转发到 mysite.com 以避免浏览器中出现错误消息?
我尝试过在 Nginx 上使用重写,但我认为这不是解决问题的方法。
我无法在 DNS 级别执行此操作,因为我的客户端 DNS 不允许这样做。这不仅适用于一个域,有相当多的域,我需要降低成本,而不是购买 SAN SSL。
在此先感谢您的帮助。
答案1
每个域都需要在证书中有一个条目,因为 SSL 握手部分是在处理任何重定向规则之前完成的。
关于成本,一个想法是创建一个启用 SNI 的虚拟主机,它除了重定向到主域之外不执行其他任何操作,并为其使用免费证书。Letsencrypt 允许您在一个证书中添加多个域名(基本上是一个免费的 SAN 证书)。只需确保它们都具有指向该 SNI 虚拟主机 IP 的有效 DNS 记录即可。