我拥有域名
example.com, .com.au, .net, .net.au, ... (8 in total).
我希望所有这些 TLD 到 301 重定向到安全的 .com 域
https://www.example.com
我使用 Nginx 处理所有 HTTP 请求,但不是所有 HTTPS。
我已经为 https://www.example.com
安装了一个 SSL 证书,这适用于 www 和 non-www 没有任何安全警告(如预期的那样)。
当浏览说 http://example.net
时,我被重定向到 https://www.example.com
而没有安全警告。但是,当浏览到 https://example.net
时,我收到了可怕的安全警告。
现在我假设这是因为我只拥有 .com SSL 证书而不是 other TLD。此外,所有站点都托管在相同 服务器/IP 地址上,因此为其他 TLD 返回 .com 证书。
所有域的 DNS A 记录都指向我的 Nginx 服务器的单个 IP 地址。
根据我所阅读和理解的内容,我认为我需要为我拥有的每个 TLD 提供一个 IP 地址和 SSL 证书。对于简单的重定向来说,这似乎有点矫枉过正。
是否有任何 Nginx 或 DNS 欺骗我可以用来避免 OTHER(非 .com TLD)的标准安全警告 无需支付更多 IP 地址和 SSL 证书?
我想在我继续购买所有必需的证书等之前最好问问智囊团。
下面是我的 Nginx 配置:
server { # redirect/catch all block
listen 80;
listen 443;
server_name _ .example.com .example.com.au .example.net .example.net.au;
return 301 https://www.example.com$request_uri;
}
server {
listen 443 ssl default_server; # Secure default server block
server_name www.example.com;
root /srv/www/example.com/public_html;
index index.html index.htm;
ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
# ... rest of config
}
最佳答案
From what I have read and understood, I think I need an IP address and SSL certificate for each TLD I own. This seems like overkill for a simple redirect.
重定向是在 HTTP 层完成的。但是在 HTTPS 中,HTTP 层被封装在 TLS 中。这意味着它必须先成功建立 TLS 连接,然后才能进行重定向。因此,即使您只是重定向到另一台主机,它也需要为您通过 HTTPS 访问的所有主机名提供适当的证书。
关于redirect - Nginx HTTPS 301 重定向到另一个 TLD(托管在同一台服务器上)而不显示 SSL 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25196891/