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

Nginx配置问题:通过IP访问时无法使用自签名证书

解决Nginx IP访问返回错误证书的问题

问题根源

当通过IP直接访问服务器时,若请求未携带匹配域名的Host头(比如使用openssl s_client默认方式发起请求),Nginx会自动选择第一个监听对应端口的server块作为默认服务器,因此返回了配置Let's Encrypt证书的域名server块内容。

解决步骤

1. 将IP对应的Server块设为默认服务器

修改IP访问的Server块,在listen指令后添加default_server参数,确保无匹配Host头的请求会命中这个块:

server {
    listen 443 ssl http2 default_server;
    listen [::]:443 ssl http2 default_server;
    server_name 149.154.150.134;

    ssl_certificate /path/to/cert/fullchain.pem;
    ssl_certificate_key /path/to/cert/privkey.pem;

    location / {
            allow 214.107.49.66;
            deny all;
    }
}

2. 修正原有域名Server块的server_name写法

原有配置中使用逗号分隔多个域名是错误的,Nginx要求用空格分隔域名列表,修正后:

server {
     root /var/www/html;
     index index.html index.htm index.nginx-debian.html;
     server_name example.com www.example.com; # 替换逗号为空格

     location / {
            proxy_pass http://localhost:6000;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

 listen [::]:443 ssl http2 ipv6only=on;
 listen 443 ssl http2;
 ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;
 include /etc/letsencrypt/options-ssl-nginx.conf;
 ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}

3. 验证配置并重启Nginx

  • 先检查配置语法是否合法:
    nginx -t
    
  • 确认无误后重启Nginx使配置生效:
    systemctl restart nginx
    

验证结果

再次执行openssl s_client -connect 149.154.150.134:443测试,应该会返回你的自签名证书。若要测试带IP Host头的请求,可使用:

openssl s_client -connect 149.154.150.134:443 -servername 149.154.150.134

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 09:37:15