我拥有这些域名
example.com, .com.au, .net, .net.au, ... (8 in total).我希望所有这些TLD都重定向到安全的.com域
https://www.example.com
我让它在所有HTTP请求中使用Nginx,但不是所有HTTPS。
我已经为https://www.example.com安装了一个SSL证书,它适用于www和non,没有任何安全警告(正如预期的那样)。
当浏览http://example.net时,我会在没有安全警告的情况下被重定向到https://www.example.com。然而,当浏览到https://example.net时,我会收到可怕的安全警告。
现在,我假设这是因为我只拥有.com SSL证书,而不是其他TLD。而且,所有站点都托管在同一个服务器/ip地址上,因此将返回其他TLD的.com证书。
DNS所有域的记录指向我的Nginx服务器的单个IP地址。
根据我的阅读和理解,我认为我需要为我拥有的每个TLD提供一个IP地址和SSL证书。对于一个简单的重定向来说,这似乎是过分的。
我是否可以使用任何Nginx或DNS欺骗来避免其他(非.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
}发布于 2014-08-08 06:17:03
根据我的阅读和理解,我认为我需要为我拥有的每个TLD提供一个IP地址和SSL证书。对于一个简单的重定向来说,这似乎是过分的。
重定向是在HTTP层完成的。但是在HTTPS中,HTTP层封装在TLS中。这意味着它必须首先成功地建立TLS连接,然后才能进行重定向。因此,它需要为您通过HTTPS访问的所有主机名提供一个适当的证书,即使您只是重定向到另一个主机。
发布于 2016-10-15 20:38:09
通过将第一个重定向服务器设置为默认值,我成功地完成了类似的任务。然后第二个更具体的服务器处理所有的流量。注意对default_server和server_name的更改。我的证书没有分配给IP地址,只有域名,并且在Chrome中没有错误地进行重定向,但是在Safari中,它在访问https://<the-ip>的测试中弹出了一个警告。
server {
# default for all, except other more-specific blocks
listen 80 default_server;
listen 443 ssl default_server;
server_name _;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
return 301 https://www.example.com$request_uri;
}
server {
listen 443 ssl;
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
}https://stackoverflow.com/questions/25196891
复制相似问题