ssl新闻资讯

文档中心

Nginx閰嶇疆澶氫釜鍩熷悕SSL璇佷功瀹炴垬鎸囧崡瀹夊叏鍙堢渷蹇?txt

时间 : 2025-09-27 16:27:53浏览量 : 4

2Nginx閰嶇疆澶氫釜鍩熷悕SSL璇佷功瀹炴垬鎸囧崡瀹夊叏鍙堢渷蹇?txt

在今天的互联网环境中,SSL/TLS证书(即HTTPS加密)已成为网站安全的标配。但对于运维人员来说,如果一台服务器上托管了多个网站(比如 `blog.example.com` 和 `shop.example.com`),如何高效地为每个域名配置独立的SSL证书?本文将用最通俗的语言+实战案例,带你玩转Nginx多域名SSL配置。

一、为什么需要多域名SSL证书?

假设你的服务器同时运行以下服务:

- 主站:`www.company.com`

- API接口:`api.company.com`

- 客户后台:`dashboard.company.com`

如果只用一个通配符证书(`*.company.com`),虽然能覆盖所有子域名,但存在两个问题:

1. 安全风险:一旦私钥泄露,所有子域名都会受影响。

2. 合规需求:某些行业(如金融)要求每个子域名使用独立证书。

二、两种主流解决方案

方案1:单IP多证书(SNI技术)

原理:通过SNI(Server Name Indication)技术,在TLS握手阶段告诉服务器“我要访问哪个域名”,Nginx再返回对应的证书。

优势:无需为每个域名分配独立IP,节省成本。

配置示例

```nginx

server {

listen 443 ssl;

server_name blog.example.com;

ssl_certificate /path/to/blog.crt;

博客域名的证书

ssl_certificate_key /path/to/blog.key;

其他配置...

}

server_name shop.example.com;

ssl_certificate /path/to/shop.crt;

商城域名的证书

ssl_certificate_key /path/to/shop.key;

```

> ? 适用场景:现代浏览器均支持SNI(IE6等老旧浏览器除外)。

方案2:多IP多证书

原理:为每个域名分配独立的IP地址,Nginx根据IP地址选择对应的证书。

优势:兼容性100%,适合需要支持老旧系统的场景。

listen 192.0.2.1:443 ssl;

IP1绑定blog.example.com

ssl_certificate /path/to/blog.crt;

listen 192.0.2.2:443 ssl;

IP2绑定shop.example.com

ssl_certificate /path/to/shop.crt;

三、避坑指南

坑1:证书链不完整

? 错误现象:浏览器提示“此连接非完全安全”。

? 解决方法:确保证书文件包含中间CA证书。合并命令示例:

```bash

cat domain.crt intermediate.crt > fullchain.crt

坑2:HTTP/2兼容性问题

? 错误现象:Nginx报错 `invalid ALPN protocol "http/1.1"`。

? 解决方法:在监听端口后明确声明协议:

listen 443 ssl http2;

注意http2参数

坑3:默认证书陷阱

如果请求的域名不匹配任何 `server_name`,Nginx会返回第一个定义的证书。建议添加一个默认拦截:

listen 443 default_server ssl;

ssl_certificate /path/to/default.crt;

return 444;

直接关闭连接

四、高级技巧

技巧1:OCSP Stapling加速

通过缓存证书状态查询,减少HTTPS握手时间:

ssl_stapling on;

ssl_stapling_verify on;

resolver 8.8.8.8 valid=300s;

技巧2:自动化续签(Let's Encrypt)

使用Certbot自动为多域名续签:

certbot --nginx -d blog.example.com -d shop.example.com --expand

五、表格对比

| 方案 | SNI多证书 | 多IP多证书 |

||-|-|

|成本 |低(共用IP)|高(需额外IP)|

|兼容性 |现代浏览器 |所有设备 |

|适用场景 |90%的Web业务|金融/***系统|

如果你是中小型企业,优先选择SNI方案;若涉及敏感数据且预算充足,则考虑多IP绑定。

通过本文的实战案例和避坑指南,你应该能轻松驾驭Nginx的多域名SSL配置了!如果有疑问,欢迎在评论区交流讨论~ ??

TAG:nginx多个域名ssl证书,nginx 配置多个域名 指向同一个服务,nginx配置多域名代理访问,nginx配置多个域名 servername,nginx 多个域名