HTTPS 证书在 WWW 上不起作用,但在非 WWW 上起作用

HTTPS 证书在 WWW 上不起作用,但在非 WWW 上起作用

我从 SSLMate 购买了 SSL 证书,当我访问时,它在我的 Nginx 服务器上运行良好http://example.com,但当我访问 http:// www.example.com 时却不行

我认为问题与我输入 CNAME 的方式有关。这是一张图片:https://i.stack.imgur.com/fTkaZ.png

我在 SSLMate 上购买的证书表明 www 证书适用于 www 和非 www,所以我认为我填写的 CNAME 错误。我正在尝试http://www。 和https://www. 301 重定向至 https:// example.com

这是我的 Nginx 配置:

server {
    server_name examplesite.com;
    #rewrite https://examplesite.com$request_uri? permanent;
    return 301 https://examplesite.com$request_uri;
}

server {
    listen 443 ssl;
    ssl on;
    ssl_certificate /etc/sslmate/www.examplesite.com.chained.crt;
    ssl_certificate_key /etc/sslmate/www.examplesite.com.key;

    server_name examplesite.com;

    root /home/garrett/domains/examplesite.com/public_html;
    access_log /home/garrett/domains/examplesite.com/logs/access.log;
    error_log /home/garrett/domains/examplesite.com/logs/error.log;

    index index.php index.html index.htm;
    error_page 404 /404.php;
    error_page 403 /404.php;

    location / {
        #try_files $uri $uri/ /index.php;
    }

    location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
        expires max;
    }


    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php5-fpm-garrett.sock;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

在第一个块中将 www.examplesite.com 添加到 server_name 会破坏所有内容。

答案1

一些建议:

  • 使用 openssl 命令行工具检查证书的内容。确认它确实支持两个域。如果是这样,它可能会使用 SNI 来执行此操作。检查您的 SNI 支持
  • 首先将问题分解成更小的问题。创建 4 个server {}块:一个用于“http://www“,一个用于”https://www“,一个为一个”https://无www“ 还有一个是 “http://无www“。然后每个配置将尽可能小而简单。让它们一个接一个地工作。完成后,您可以寻找模式,也许可以返回并将它们组合起来。

这是我使用的替代方法,它也简化了 Nginx 配置:支持和重定向“www”子域名很重要,支持 SSL 也很重要,但不是支持某人不太可能的组合很重要两个都手动输入“www”子域名他们也手动输入了“https://”。所以我不支持第四种变体。在十几个生产站点中,这不是一个问题。因此,这消除了对第二个 SSL 证书的需求,以及 SNI 支持可能出现的问题。

接下来,我在本地 Nginx 配置中不支持“www”。相反,我使用 DNS 提供商的“HTTP 重定向”功能。我使用 DNS Made Easy,但这是多个 DNS 提供商都支持的流行功能。通过向他们输入“www”子域的“HTTP 重定向”记录,DNS 会解析为他们的网络服务器,他们为我处理“*www”子域的配置和重定向。

我要处理的只是将主域的非 SSL 重定向到 SSL 的简单情况。

相关内容