使用Nginx将www重定向到非www godaddy

时间:2019-02-26 09:49:36

标签: nginx devops

我有一个非www网址的网站,我尝试使用以下步骤将其重定向-

对于DNS,我曾经使用爸爸

Type           name         value           ttl     
  A              @        xx.xx.xx.xx       600 seconds
CNAME           www            @             1 Hour

在我的Nginx配置中,我进行了以下更改-

server {
listen 443;     
server_name  XAXA.com www.XAXA.com;
if ($host = XAXA.com) {
    return 301 https://$host$request_uri;
} 
 return 404;
}

我可以使用XAXA.com登录我的网站,但是每当我尝试使用www.XAXA.com时,我都会得到-您的连接不是私有的

我正在使用SSl加密。

1 个答案:

答案 0 :(得分:0)

“连接不是私有的”警告与您提供的证书有关。您的浏览器无法验证服务器提供的证书对www.xaxa.com有效。

我不知道您证书的确切内容,所以我猜您的证书没有正确设置Subject Alternative Name

我将使用openssl作为如何查看证书内容的示例,但是您可以随意使用。

我假设您的证书的Subject看起来像这样

$ openssl s_client -connect xaxa.com:443 -showcerts | openssl x509 -subject -noout
CN = xaxa.com

这很好,不需要更改。根据您的浏览器,在针对主机验证证书时,它甚至可能不是验证过程的一部分。

我还假设您的证书的Subject Alternative Name看起来像这样

$ openssl s_client -connect xaxa.com:443 -showcerts 2>/dev/null | openssl x509 -text -noout 2>/dev/null | grep -A 1 'Subject Alternative Name'
X509v3 Subject Alternative Name:
  DNS:xaxa.com

您要实现的是该Subject Alternative Name字段中的列表:

$ openssl s_client -connect xaxa.com:443 -showcerts 2>/dev/null | openssl x509 -text -noout 2>/dev/null | grep -A 1 'Subject Alternative Name'
X509v3 Subject Alternative Name:
  DNS:xaxa.com, DNS:www.xaxa.com

如果您有多个子域,则可以提供通配符值而不是www,即。 DNS:*.xaxa.com

关于“让我们加密”的实际实现方式取决于您使用的ACME client implementation