Php 重新使用https://www 域到https://non-www Nginx中的域

Php 重新使用https://www 域到https://non-www Nginx中的域,php,nginx,ssl,web,web-applications,Php,Nginx,Ssl,Web,Web Applications,我在Nginx服务器上有大约50个域,为其颁发了SSL证书(非www-SSL证书) 现在,当我们试图打开一个像https://www[Domain],存在“公用名”错误,因为未为www安装证书 我想改变任何方向https://www[domain]到https://[domain],我在博客上尝试了几种可用的解决方案,但似乎以下代码仅在域上安装SSL时有效,因为我为其中一个域重新颁发了www证书,然后我可以使用下面的代码块重定向。但我们不想为所有使用www的域重新颁发证书 server {

我在Nginx服务器上有大约50个域,为其颁发了SSL证书(非www-SSL证书)

现在,当我们试图打开一个像https://www[Domain],存在“公用名”错误,因为未为www安装证书

我想改变任何方向https://www[domain]到https://[domain],我在博客上尝试了几种可用的解决方案,但似乎以下代码仅在域上安装SSL时有效,因为我为其中一个域重新颁发了www证书,然后我可以使用下面的代码块重定向。但我们不想为所有使用www的域重新颁发证书

server {
    listen 443 ssl;
    server_name www.[domain];    
    return 301 $scheme://[domain]$request_uri;
}
我还尝试了一些带有服务器块的正则表达式,但它也不起作用

server { 
    server_name "www.(.+?\.\w+)" ; 
    return 301 https://$1$request_uri; 
}

我怎样才能做到这一点?

你不能<代码>https需要有效的证书。如果您没有
www.example.com
的有效证书,用户的浏览器会抱怨。理论上,您可以尝试使用模块为这些域动态生成Let's Encrypt certificates(您需要一个or而不是“vanilla”nginx)。否则我认为这是不可能的。