You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置通配符子域名证书仍出现ERR_CERT_COMMON_NAME_INVALID错误

问题:HTTPS子域名访问触发ERR_CERT_COMMON_NAME_INVALID错误(证书已配置*.app SAN)

访问所有*.app子域名(例如https://portainer.app/)时,浏览器提示ERR_CERT_COMMON_NAME_INVALID错误,但证书已明确包含app和*.app的SAN条目。主域名https://app/访问正常,证书验证通过;通过app/portainer或10.1.1.51/portainer访问也能正常使用SSL加密。

环境与配置详情

  • 服务器:Debian Docker服务器,主机名app,IP10.1.1.51,域内所有设备均可正常解析该主机名与IP(已通过ping、nslookup验证)
  • 证书体系:使用XCA生成Root CA、Intermediate CA,终端服务器证书由Intermediate CA签名;Root与Intermediate公钥已部署至域内所有设备。证书SAN包含:
...
DNS Name=terminal
DNS Name=*.terminal
DNS Name=app
DNS Name=*.app
DNS Name=localhost
IP Address=127.0.0.1
IP Address=10.1.1.50
IP Address=10.1.1.51
...

Portainer Docker Compose配置

services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    restart: unless-stopped
    ports:
      - 9810:9443
      - 8000:8000
    volumes:
      - ./data:/data
      - ./ssl:/certs
      - /var/run/docker.sock:/var/run/docker.sock.
    command:
      - --ssl
      - --sslcert
      - /certs/Servers-Public.crt
      - --sslkey
      - /certs/Servers-Private.pem

Nginx配置

portainer.conf(子域名站点)

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name portainer.app;

    ssl_certificate /etc/ssl/certs/Servers-Public.crt;
    ssl_certificate_key /etc/ssl/private/Servers-Private.pem;

    location / {
        proxy_pass https://10.1.1.51:9810/;
    }
}

default.conf(主站点)

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name app localhost 10.1.1.51;

    ssl_certificate /etc/ssl/certs/Servers-Public.crt;
    ssl_certificate_key /etc/ssl/private/Servers-Private.pem;

    location / {
        root /usr/share/nginx/html;
        index index.html index.htm;
    }

    location /portainer/ {
        proxy_pass https://10.1.1.51:9810/;
        proxy_set_header X-Forwarded-Prefix /portainer;
        proxy_set_header Host $host;
    }
}

HTTP转HTTPS重定向配置

server {
    listen 80;
    listen [::]:80;
    server_name portainer.app;
    return 301 https://$host$request_uri;
}

已排查内容

  • 检查Nginx配置、Docker Compose文件、DNS设置,未发现异常
  • 重新生成包含原域名的证书,以及仅包含portainer.app和*.portainer.app的简化证书,问题依旧
  • DNS可正确解析子域名到服务器IP10.1.1.51,但访问子域名时Nginx容器无日志记录
  • 关闭ESET杀毒软件后问题仍存在

请问错误可能出在哪里?


内容的提问来源于stack exchange,提问作者Atiris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 15:57:17