特网科技为您提供高速、稳定、安全、弹性的云计算服务计算、存储、监控、安全,完善的云产品满足您的一切所需,深耕云计算领域10余年;我们拥有前沿的核心技术,始终致力于为政府机构、企业组织和个人开发者提供稳定、安全、可靠、高性价比的云计算产品与服务。

当前位置:首页 > 行业资讯 > SSL证书 > 正文内容

Nginx配置多个SSL证书的完整指南

2025-10-20SSL证书933

海外云服务器 40个地区可选            亚太云服务器 香港 日本 韩国

云虚拟主机 个人和企业网站的理想选择            俄罗斯电商外贸虚拟主机 赠送SSL证书

美国云虚拟主机 助力出海企业低成本上云             拨号云主机


当然可以,以下是我根据您提供的原始内容进行错别字修正、语句润色、逻辑补充与语言原创化处理后的优化版本,整体结构更清晰,语言更流畅专业,并增强了技术深度和可读性。


在现代 Web 应用开发中,数据安全已成为系统设计的核心要素之一,HTTPS 协议通过 SSL/TLS 加密机制,有效防止了用户信息在传输过程中的窃听与篡改,作为全球最受欢迎的高性能 Web 服务器之一,Nginx 不仅具备出色的并发处理能力,还广泛用于承载高流量网站和微服务架构的前端代理。

随着业务规模的扩展,单台 Nginx 服务器常常需要为多个独立域名提供服务——例如主站 example.com 和博客站点 blog.example.org,甚至跨品牌的 companyA.com 与 companyB.net,为了保障每个站点的安全通信,必须为其配置独立的 SSL 证书,本文将深入讲解如何在同一个 Nginx 实例中为多个域名部署各自的 SSL 证书,确保各站点均能以安全、稳定的方式运行于 HTTPS 环境下。


为何需要配置多个 SSL 证书?

当一台服务器托管多个网站(即虚拟主机)时,每个站点通常拥有不同的域名,若希望启用 HTTPS,就必须为每一个域名申请并部署相应的 SSL 证书。

虽然通配符证书(如 *.example.com)可以覆盖同一主域下的所有子域名,但它无法适用于完全独立的顶级域名。shop.com 和 blog.net 属于不同品牌或组织,必须使用各自的证书文件。

不同域名可能由不同的证书颁发机构(CA)签发,加密算法(如 RSA 或 ECC)、密钥长度、有效期等也可能存在差异,Nginx 必须具备灵活管理多个证书的能力,才能满足复杂场景下的安全需求。


配置前的准备工作

在开始配置之前,请确认已完成以下基础设置:

  1. 已安装 Nginx
    使用命令 nginx -v 检查当前版本,推荐使用较新的稳定版(如 1.20+),以获得更好的 TLS 支持和安全性。

  2. 获取有效的 SSL 证书
    每个域名需配备对应的 .crt(公钥证书)和 .key(私钥文件),建议从可信 CA 获取证书,

    • 免费方案:Let's Encrypt(配合 Certbot 自动化工具)
    • 商业方案:DigiCert、Sectigo、GlobalSign 等
  3. 完成 DNS 解析
    所有域名应正确解析到该服务器的公网 IP 地址,确保客户端可通过域名访问服务。

  4. 开放 HTTPS 端口
    确保防火墙允许 TCP 443 端口通信(必要时也开启 80 端口用于重定向和证书验证)。


配置多个 SSL 证书的具体步骤

Nginx 通过“server 块”实现基于名称的虚拟主机(Name-based Virtual Hosting),结合 SNI(Server Name Indication)技术,可在同一 IP 地址上支持多个 HTTPS 站点。

第一步:整理证书文件结构

建议为每个域名建立独立目录存放其证书,提升管理和维护效率,示例如下:

/etc/nginx/ssl/example.com/
    ├── example.com.crt
    └── example.com.key
/etc/nginx/ssl/blog.example.org/
    ├── blog.example.org.crt
    └── blog.example.org.key

⚠️ 权限提示:私钥文件应设置严格权限,避免泄露。

chmod 600 /etc/nginx/ssl/*/ *.key
chown root:root /etc/nginx/ssl -R

第二步:编写 Server 块配置

将配置文件放置于 /etc/nginx/sites-available/ 目录,并通过符号链接启用,您可以为每个站点单独建文件,也可在一个文件中定义多个 server 块。

为主站配置 SSL(example.com)

server {
    listen 443 ssl http2;
    server_name example.com www.example.com;
    # SSL 证书路径
    ssl_certificate     /etc/nginx/ssl/example.com/example.com.crt;
    ssl_certificate_key /etc/nginx/ssl/example.com/example.com.key;
    # 推荐的 SSL 安全参数
    ssl_protocols       TLSv1.2 TLSv1.3;
    ssl_ciphers         ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512;
    ssl_prefer_server_ciphers off;
    # HSTS 强制浏览器后续请求使用 HTTPS(谨慎启用)
    add_header Strict-Transport-Security "max-age=31536000" always;
    # 站点根目录与默认页面
    root /var/www/example.com;
    index index.html;
    location / {
        try_files $uri $uri/ =404;
    }
    # 日志记录
    access_log /var/log/nginx/example.com.access.log;
    error_log  /var/log/nginx/example.com.error.log;
}

为博客站点配置 SSL(blog.example.org)

server {
    listen 443 ssl http2;
    server_name blog.example.org;
    ssl_certificate     /etc/nginx/ssl/blog.example.org/blog.example.org.crt;
    ssl_certificate_key /etc/nginx/ssl/blog.example.org/blog.example.org.key;
    ssl_protocols       TLSv1.2 TLSv1.3;
    ssl_ciphers         ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512;
    ssl_prefer_server_ciphers off;
    add_header Strict-Transport-Security "max-age=31536000" always;
    root /var/www/blog;
    index index.php index.html;
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    # PHP 动态请求处理(假设使用 PHP-FPM)
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    # 静态资源缓存优化
    location ~* \.(jpg|jpeg|png|gif|css|js|ico|svg)$ {
        expires 1y;
        add_header Cache-Control "public, immutable";
    }
    access_log /var/log/nginx/blog.example.org.access.log;
    error_log  /var/log/nginx/blog.example.org.error.log;
}

✅ 提示:启用 HTTP/2 可显著提升网页加载性能,但需确保客户端和证书支持。


第三步:启用配置并测试

创建软连接,将配置从 sites-available 启用至 sites-enabled:

ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/blog.example.org /etc/nginx/sites-enabled/

检测配置语法是否正确:

nginx -t

若输出显示 “syntax is ok” 和 “test is successful”,则可安全重载服务:

systemctl reload nginx

两个域名均已通过 HTTPS 正常对外提供服务。


注意事项与最佳实践
  1. 监听端口无冲突
    多个 server 块均可监听 443 端口,Nginx 会依据 server_name 和 SNI 字段自动匹配对应证书,无需担心端口占用问题。

  2. 依赖 SNI 技术
    SNI 允许服务器在同一 IP 上返回不同证书,绝大多数现代浏览器和操作系统均已支持 SNI,但对极老设备(如 Windows XP + IE6)可能存在兼容性限制。

  3. 统一全局 SSL 设置(推荐)
    为减少重复配置,可在 http { } 块中定义通用安全策略:

    http {
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512;
        ssl_prefer_server_ciphers off;
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m;
        # 包含具体站点配置
        include /etc/nginx/sites-enabled/*;
    }

    子 server 块中可省略这些共用指令,提高可维护性。

  4. 强制 HTTP 跳转 HTTPS
    为每个

扫描二维码推送至手机访问。

版权声明:本文由特网科技发布,如需转载请注明出处。

本文链接:https://www.56dr.com/mation/82513.html

分享给朋友:

“Nginx配置多个SSL证书的完整指南” 的相关文章

全球跨境云服务市场趋势及价格表分析

随着全球云计算市场的不断扩展和需求增长,跨境云服务市场呈现出多元化、标准化和智能化的趋势。根据最新数据,2023年全球跨境云服务市场规模预计将达到4.8万亿美元,同比增长15%。从技术角度,云计算提供商正朝着更高效、安全和成本效益更高的方向发展。在价格方面,不同地区和云服务提供商之间的价格差距也在不...

服务器租用平台费用一览

随着云计算技术的发展,越来越多的企业选择通过租用服务器来实现IT基础设施的扩展和升级。如何在保证服务质量和成本控制的前提下合理选择服务器租赁平台成为了许多企业的难题。,,本文将从以下几个方面探讨服务器租赁平台费用的一般情况,包括但不限于:,,1. 基础设施成本:服务器租赁平台通常会提供基本的硬件资源...

笔记本电脑综合评分,性价比、性能稳定性及售后服务全面分析

在选购电脑时,性价比、性能稳定性以及售后服务是三大关键因素。性价比通常与产品的价格和功能配置相关,选择一款既能满足基本需求又不超预算的产品至关重要。稳定的性能是用户长期使用的重要保障。良好的售后服务能及时解决使用过程中遇到的问题,提升用户的满意度和信任度。在购买电脑时,应全面考虑这些因素,并结合自己...

经济数据大幅下降

好的,请提供您需要分析的内容。随着科技的发展,移动应用(App)已经成为人们日常生活的一部分,为了确保用户能够享受流畅的使用体验,许多公司投资了大量的资源来构建和维护高效的App服务器,以下是一些不同规模和类型的App服务器的价格范围,从低到高进行分析。企业级App服务器对于需要高性能、高可靠性且长...

全球超大规模云计算服务提供商,亚马逊、微软和谷歌的较量

全球领先的超大规模云计算服务提供商包括亚马逊AWS、微软Azure、谷歌GCP和IBM云等。这些公司拥有庞大的数据中心网络和强大的计算能力,能够为用户提供广泛的服务范围,从基础架构设计到应用开发、数据分析等,满足用户在各种场景下的需求。随着科技的发展和全球化进程的加快,越来越多的企业和个人选择在全球...

搭建海外服务器的详细指南

搭建海外服务器的步骤包括选择合适的云服务提供商、购买服务器、配置网络和安全组、安装操作系统以及进行必要的软件和配置。需要注意的是,选择云服务提供商时应考虑价格、性能、安全性等因素,并确保遵守当地的法律法规。在使用海外服务器时,还应注意防火墙设置和数据备份等安全措施。在当今数字化时代,拥有自己的服务器...