有可能用nginx将HTTPS重定向到HTTPS吗



我有以下问题。我创建了这个丹麦网站flaatinfo.dk,flåtinfo.dk也可以访问。

域名经理给了我一个flaatinfo.dk的证书,但说他们无法为flåtinfo.dk生成证书,因为它包含一个特殊字符。

有没有一种方法(在nginx设置中(可以将所有HTTPS请求从flåtinfo.dk重定向到flaatinfo.dk??

HTTP重定向似乎工作得很好,但如果我尝试像这样重定向HTTPS,我会在浏览器中收到证书错误:

server {
listen 443 ssl;
server_name flåtinfo.dk www.flåtinfo.dk;
return 301 https://flaatinfo.dk$request_uri;
}

www.flåtinfo.dk是一个国际化域名(IDN(。

根据NGINX国际化名称文档:

域名(IDN(应使用ASCII(Punycode(指定server_name指令中的表示

因此您应该在NGINX配置中将其指定为xn--fltinfo-fxa.dk

至于为什么你的纯HTTP重定向仍然有效,可能是因为它与任何其他域都不匹配,所以NGINX最终不得不选择它作为默认域。

我在浏览器中得到证书错误

当然,由于您的IDN没有TLS证书,浏览器会发出警告。您需要获得IDN的TLS证书才能消除警告。Let's Encrypt支持为IDN颁发证书,并且是免费的。

最新更新