Redirect NGINX:如何将所有http/https请求重定向到主域

Redirect NGINX:如何将所有http/https请求重定向到主域,redirect,nginx,https,Redirect,Nginx,Https,我正在尝试在我的Nginx服务器上配置重定向 我只想使用域:example.com(无子域或www)和https http一切正常,但https只重定向www,因此我有: [重定向到] [重定向到] [重定向到] [重定向到] [无重定向]网络::错误证书\u公用\u名称\u无效 在“我的站点可用/默认”文件中,我有两个服务器块: 要重定向请求,请执行以下操作: server { listen 80; listen 443

我正在尝试在我的Nginx服务器上配置重定向

我只想使用域:example.com(无子域或www)和https

http一切正常,但https只重定向www,因此我有:

  • [重定向到]
  • [重定向到]
  • [重定向到]
  • [重定向到]
  • [无重定向]网络::错误证书\u公用\u名称\u无效
在“我的站点可用/默认”文件中,我有两个服务器块:

要重定向请求,请执行以下操作:

server {
        listen          80;
        listen          443 ssl;
        server_name     _;
        return          301 https://example.com$request_uri;
}
服务器配置:

server {
        listen 443 ssl;

        server_name example.com;
        ...
}

我认为我的重定向服务器块未正确配置为https,如何更正错误?

在重定向发生之前,SSL证书必须对站点有效。这意味着您需要一个通配符证书才能完成此操作。这有点牵强谢谢Richard的回答。由于我对不支持通配符的证书使用let's encrypt,我无法对https子域进行重定向。一种解决方案是为每个子域使用单独的
server
块,每个块都有自己的let's encrypt证书。在重定向发生之前,SSL证书必须对站点有效。这意味着您需要一个通配符证书才能完成此操作。这有点牵强谢谢Richard的回答。由于我对不支持通配符的证书使用let's encrypt,我无法重定向https子域。一种解决方案是为每个子域使用单独的
server
块,每个块都有自己的let's encrypt证书。