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

Python-Flask子域API证书错误求助:ERR_CERT_AUTHORITY_INVALID

问题分析与解决步骤

核心问题

你的Nginx配置仅为example.com域名配置了SSL证书,但访问www.example.com时没有对应的SSL配置,导致浏览器无法验证该域名的证书有效性,进而触发ERR_CERT_AUTHORITY_INVALID错误。另外,虽然API使用*.example.com通配符证书,但主域名的www子域名未正确配置证书,会影响跨域请求的证书信任链。

解决方案

1. 更新Nginx配置,覆盖www.example.com域名

修改现有server块,让其同时处理主域名和www子域名,确保通配符证书能生效:

修改后的Nginx配置

server {
    listen 443 ssl;
    ssl_certificate /home/ubuntu/ssl/cert.pem;
    ssl_certificate_key /home/ubuntu/ssl/key.pem;

    # 同时匹配主域名和www子域名
    server_name example.com www.example.com;
    
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
    
    ssl_session_timeout 10m;

    location / {
        include proxy_params;
        proxy_pass http://127.0.0.1:5001;
        add_header 'Access-Control-Allow-Origin' "*";
        add_header Vary Origin; 
    }
}

# 可选:添加HTTP跳转HTTPS规则,避免用户访问非加密地址
server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

2. 验证通配符证书覆盖范围

确认你的证书确实包含www.example.com(通配符*.example.com默认覆盖所有一级子域名),执行以下命令检查证书内容:

openssl x509 -in /home/ubuntu/ssl/cert.pem -text -noout | grep DNS

输出应包含DNS:*.example.com,若证书同时包含主域名,还会显示DNS:example.com。

3. 重启Nginx生效配置

修改完成后,重启Nginx服务:

sudo systemctl restart nginx

4. 规范跨域请求配置

生产环境建议将Access-Control-Allow-Origin从*改为具体域名,比如https://example.com https://www.example.com,提升安全性。同时确保React应用调用API时使用的是https://api.example.com域名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 03:34:58