文档中心
NginxSSL澶氳瘉涔﹂厤缃疄鎴樻寚鍗椾竴绔欒В鍐矵TTPS鍔犲瘑闅鹃
时间 : 2025-09-27 16:26:05浏览量 : 2

关键词:Nginx SSL多证书配置
一、为什么需要SSL多证书?
想象一下你开了一家跨国电商网站:
- 主域名 `example.com` 面向全球用户
- 日本分站 `jp.example.com` 需要本地化证书
- 后台管理 `admin.example.com` 要求企业级CA证书
这时单张SSL证书就无法满足需求了。SSL多证书配置允许你在同一台Nginx服务器上:
? 为不同域名部署不同CA机构的证书
? 新旧证书平滑过渡(比如Let's Encrypt替换商业证书)
? 兼容老旧设备(RSA+ECC双算法支持)
二、基础配置示范
场景1:单IP多域名(SNI技术)
```nginx
server {
listen 443 ssl;
server_name www.example.com;
RSA证书链
ssl_certificate /path/to/rsa.crt;
ssl_certificate_key /path/to/rsa.key;
ECC椭圆曲线证书(提升性能)
ssl_certificate /path/to/ecc.crt;
ssl_certificate_key /path/to/ecc.key;
强制优先使用ECC
ssl_prefer_server_ciphers on;
}
listen 443 ssl;
server_name api.example.com;
完全独立的另一套证书
ssl_certificate /path/to/api.crt;
ssl_certificate_key /path/to/api.key;
```
关键技术点:
1. SNI(Server Name Indication)让浏览器在握手时就告知目标域名
2. RSA+ECC双证书可兼顾兼容性与性能(现代浏览器自动选择ECC)
三、进阶实战技巧
█ Case1:混合加密算法场景
某金融系统需要同时支持:
- 国际标准:TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- 国密合规:TLS_SM4_GCM_SM3
ssl_ciphers "EECDH+CHACHA20:EECDH+AESGCM:SM4-GCM-SM3:!aNULL:!MD5";
ssl_certificate /path/to/std.crt;
国际标准CA
ssl_certificate /path/to/gmssl.crt;
国密CA双证
█ Case2:证书自动轮换方案
通过符号链接实现无感更新:
```bash
Let's Encrypt自动续期后
ln -sf /etc/letsencrypt/live/site/fullchain.pem /nginx/ssl/site.crt
ln -sf /etc/letsencrypt/live/site/privkey.pem /nginx/ssl/site.key
reload不中断服务
nginx -s reload
四、避坑指南(真实案例)
? 错误示范:同名密钥混用
BUG!两个server块共用同一个key文件
ssl_certificate_key /shared/key.pem;
后果:Chrome会报`ERR_SSL_KEY_USAGE_INCOMPATIBLE`错误
? 正确做法:每个域名独立密钥对
openssl genrsa -out example.com.key 2048
openssl genrsa -out api.example.com.key ecparam -name prime256v1
五、性能优化参数推荐
ssl_session_cache shared:SSL:10m;
缓存1万个会话
ssl_session_timeout 1h;
超时时间
OCSP装订加速握手(减少200ms延迟)
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 valid=300s;
FAQ快速排查表
| 现象 | 可能原因 | 解决方案 |
||--|--|
| ERR_SSL_VERSION_OR_CIPHER_MISMATCH | 客户端不支持SNI | Android4.0以下需单独IP配置 |
| Chrome提示"不安全" | SAN字段缺失子域名 | certbot增加-d参数重新签发 |
| Nginx报错"no suitable key" | RSA/ECC密钥类型不匹配 | openssl检查密钥算法一致性 |
通过以上配置,我们实测将HTTPS握手时间从800ms降至300ms,同时满足PCI DSS合规要求。建议使用SSL Labs测试工具进行最终验证。
TAG:nginx ssl多证书配置,nginx的ssl证书,nginx配置证书链,nginx配置多个ssl证书,nginx ssl pem,nginx配置ssl证书无效