将 https://example.com 重定向至 https://www.example.com

将 https://example.com 重定向至 https://www.example.com

我们从 Thawte 获得了通配符证书,但该证书不适用于https://example.com

因此,我们希望转发所有来自https://example.comhttps://www.example.com没有收到证书错误。

这在 nginx 中可能吗?

我的配置:

server {
    listen 80;

    server_name example.ch
                www.example.ch
                api.example.ch;

    if ($host = 'example.ch' ) {
        rewrite  ^/(.*)$  https://www.example.ch/$1 permanent;
    }

    rewrite ^ https://$server_name$request_uri? permanent;
}

server {
    listen 443;

    if ($host = 'example.ch' ) {
        rewrite  ^/(.*)$  https://www.example.ch/$1 permanent;
    }

    ssl on;
    ssl_certificate      /etc/nginx/ssl/example.crt;
    ssl_certificate_key  /etc/nginx/ssl/example.key; 

    server_name example.ch
                www.example.ch
                api.example.ch;

    ...
}

答案1

这是不可能的。尽管有 SNI,浏览器还是被告知要访问https://example.com会因为被重定向到其他地方而变得非常暴躁已经为 example.com 提供了任何有效证书 - 如果没有,SSL 证书将毫无意义。

正如其他人指出的那样,如果没有获得对最初请求的域有效的证书,就无法支持这一点。

相关内容