首页 > 解决方案 > NGINX 为什么我只在我的一个域名上获得 ERR_CERT_COMMON_NAME_INVALID?

问题描述

我有一个非常奇怪的问题。我拥有多个域,比如说 example.com、example.pl、example.at 等。我的主域是 example.com,其余的应该(并且大部分是)重定向到我拥有证书的 example.com(仅对于这个)。现在奇怪的是,如果我去我的任何一个域,不管我是否使用 www ,所有这些域都会使用代码 301 正确重定向到https://example.com。除了一个 - www.example.com - 这个总是得到 307 和 ERR_CERT_COMMON_NAME_INVALID。我完全迷路了。有没有人经历过这样的事情?

这是我的 nginx 站点可用配置:

server {
  listen 80;
  server_name example.com;

  location / {
    return 301 https://example.com$request_uri;
  }
}

server {
  listen 443 ssl default_server;
  server_name example.com;

  include /etc/nginx/headers/headers.conf;
  include /etc/nginx/ssl-options/options-ssl-nginx.conf;
  ssl_dhparam /etc/nginx/ssl-options/ssl-dhparams.pem;

  access_log /var/log/nginx/data-access.log combined;

  if ($http_host = www.example.com){
          return 303 https://example.com$request_uri;
  }

  if ($http_host != example.com){
          return 303 https://example.com$request_uri;
  }

  location / {
     root /usr/share/nginx/html;
     try_files $uri /blog-build.html;
  }
}

标签: nginxsslredirectnginx-config

解决方案


推荐阅读