nginx配置双ssl证书

更新时间:2025-12-22 来源:TopSSL AI 助理 作者:TopSSL AI 助理

在 Nginx 中配置双 SSL 证书(例如同时支持 RSA 和 ECC 证书,或为不同域名/协议提供多个证书),是现代 HTTPS 服务中常见的需求,尤其适用于需要兼顾兼容性与高性能的场景。Nginx 自 1.19.4 版本起正式支持 ssl_certificatessl_certificate_key 指令的多次使用,从而实现多证书部署。


✅ 场景说明:什么是“双 SSL 证书”?

“双 SSL 证书”通常指以下两种情况之一:

  1. 混合加密算法证书共存(如 RSA + ECC)
    • 目的:兼顾旧客户端兼容性(RSA)和新客户端性能优势(ECC)
  2. 单个服务器块绑定多个域名且各自拥有独立证书
    • 目的:一个 server 块响应多个域名,每个域名使用其专属证书

⚠️ 注意:若仅为单一域名配置两个证书(如两个 RSA 证书),Nginx 将仅最后一个生效,除非结合 SNI 使用。


🔧 配置方法一:RSA + ECC 双证书(提升安全与性能)

✅ 适用场景:

  • 网站需同时支持老旧浏览器(依赖 RSA)和现代浏览器(支持 ECC)
  • 提升 TLS 握手效率,降低 CPU 占用

📁 准备文件:

  • rsa.key / rsa.crt —— RSA 私钥与证书链
  • ecc.key / ecc.crt —— ECC(如 P-256)私钥与证书链

🛠️ Nginx 配置示例:

server {
    listen 443 ssl http2;
    server_name example.com;

    # RSA 证书(主证书,兼容老客户端)
    ssl_certificate      /etc/nginx/ssl/rsa.crt;
    ssl_certificate_key  /etc/nginx/ssl/rsa.key;

    # ECC 证书(优先用于支持的客户端)
    ssl_certificate      /etc/nginx/ssl/ecc.crt;
    ssl_certificate_key  /etc/nginx/ssl/ecc.key;

    # 安全参数
    ssl_protocols          TLSv1.2 TLSv1.3;
    ssl_ciphers            ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256;
    ssl_prefer_server_ciphers off;

    # 其他设置
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 1d;
    ssl_stapling on;
    ssl_stapling_verify on;

    location / {
        root   /usr/share/nginx/html;
        index  index.html;
    }
}

关键点解释:

  • 多个 ssl_certificatessl_certificate_key 对按顺序匹配。
  • 支持 TLS 1.3 的 Key Share 扩展,客户端可自主选择合适的密钥交换方式。
  • 推荐将 ECC 证书放在后面以优先协商更高效的 ECDSA。

🔧 配置方法二:基于 SNI 的多域名多证书

✅ 适用场景:

  • 同一 IP 绑定多个域名(如 site-a.com, site-b.com
  • 每个域名有独立的 SSL 证书(可为不同类型)

🛠️ Nginx 配置示例:

server {
    listen 443 ssl http2;
    server_name site-a.com;
    ssl_certificate     /etc/nginx/ssl/site-a.crt;
    ssl_certificate_key /etc/nginx/ssl/site-a.key;
    root /var/www/site-a;
}

server {
    listen 443 ssl http2;
    server_name site-b.com;
    ssl_certificate     /etc/nginx/ssl/site-b-ecc.crt;
    ssl_certificate_key /etc/nginx/ssl/site-b-ecc.key;
    root /var/www/site-b;
}

✅ 此模式依赖于 SNI(Server Name Indication),几乎所有现代客户端均支持。


❗注意事项

项目说明
Nginx 版本要求必须 ≥ 1.19.4 才能正确支持多证书语法
SNI 支持客户端必须支持 SNI,否则无法区分证书
OCSP Stapling若启用,请确保所有证书都可通过 stapling 验证
证书链完整性每个.crt文件应包含完整的证书链(服务器证书 + 中级 CA)

🔍 如何验证双证书是否生效?

使用 OpenSSL 命令测试:

# 测试 RSA 是否可用
openssl s_client -connect example.com:443 -servername example.com -cert_rsa_key

# 测试 ECC 是否协商成功
openssl s_client -connect example.com:443 -servername example.com -cipher ECDHE-ECDSA-AES128-GCM-SHA256

或使用在线工具检测:


💡 推荐产品:适配双证书策略的 SSL 证书选型

以下是支持生成 ECC/RSA 双证书、满足高安全等级需求的推荐选项:

产品名称参考价格证书类型适用场景
DigiCert Secure Site Pro OV SSL13800元/年OV, 支持 RSA/ECC 双栈适用于需要最高信任度的金融机构、大型电商平台
GlobalSign OrganizationSSL3980元/年OV, 支持 ECC 256/384适用于中型企业官网、政务系统
立即探索,帮您快速寻找适合您的SSL数字证书 申请SSL证书
免费SSL证书 | 快速实现HTTPS加密与付费证书申请 - TopSSL
提供免费与付费SSL证书申请
微信公众号二维码 扫一扫在线咨询
关注 TopSSL 公众号, RSS订阅 SSL资讯与技术支持

2004-2026 © 北京传诚信  版权所有 | TopSSL提供免费SSL证书与付费证书,快速实现HTTPS加密  北京市朝阳区鹏景阁大厦16层

技术协助:wo@topssl.cn 企业咨询:vip@topssl.cn