核心是为每个二级域名创建独立server块并严格绑定专属SSL证书路径;需先确保DNS解析生效,再分别配置HTTP重定向与HTTPS服务块,证书路径唯一、私钥权限设为600,最后通过nginx -t验证并reload生效。
为二级域名配置独立的 SSL 证书路径,核心是让每个 server 块精准绑定对应域名,并指向专属证书文件。Nginx 不支持通配符证书自动匹配所有二级域名(除非用泛域名证书),所以不同二级域名必须各自指定证书路径。
二级域名(如 api.example.com、admin.example.com)必须先在 DNS 中正确解析到服务器公网 IP。可用以下命令验证:
dig api.example.com +short 或 nslookup admin.example.com
不建议混用多个域名共用一个 server 块。推荐为每个二级域名新建配置文件(如 /etc/nginx/conf.d/api.example.com.conf),结构如下:
server_name api.example.com; + return 301 https://$host$request_uri;
server_name api.example.com;,且只写这一行域名,不加其他ssl_certificate 和 ssl_certificate_key 必须明确指向该域名专用证书路径,例如:ssl_certificate /etc/nginx/ssl/api.example.com.crt;ssl_certificate_key /etc/nginx/ssl/api.example.com.key;
证书文件需满足两个硬性要求:
/etc/nginx/ssl/admin.example.com/ 下放 fullchain.pem 和 privkey.pem)sudo chown root:root /etc/nginx/ssl/* 和 sudo chmod 600 /etc/nginx/ssl/*.key,私钥严禁设为全局可读配置完成后务必逐项检查:
sudo nginx -t:确保语法无误,且所有 ssl_certificate 路径真实存在、可访问sudo tail -f /var/log/nginx/error.log,关注是否报 SSL_CTX_use_certificate_chain_file() failed 类错误sudo systemctl reload nginx(不中断连接)https://api.example.com,点击地址栏锁图标确认证书显示的是该域名,而非其他二级域名或主域名