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

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

Nginx配置多个SSL证书的全面指南

2025-07-15SSL证书833

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

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

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


本文提供了关于如何在 Nginx 中配置多个 SSL 证书的全面指南,通过详细步骤和示例,帮助用户为不同域名设置独立的 SSL 证书,确保网站的安全性和正确性,主要内容包括:创建服务器块、配置 SSL 证书路径、使用 ssl_certificate 和 ssl_certificate_key 指令,以及处理多域名证书的高级配置,还介绍了如何验证配置并确保所有证书正常工作,以提升网站的HTTPS支持能力。

在现代互联网环境中,安全性和用户隐私保护变得愈发重要,为了确保网站的安全性,SSL/TLS 证书被广泛应用于加密传输数据,在某些情况下,我们需要在同一台服务器上为多个域名配置不同的 SSL 证书,本文将详细介绍如何在 Nginx 中配置多个 SSL 证书,并提供一些最佳实践和常见问题的解决方案。


为什么要使用多个 SSL 证书?

在许多情况下,我们可能需要为不同的子域名或完全不同的域名配置独立的 SSL 通配符证书或单域名证书,您可能有以下几个域名:

  • www.example.com
  • blog.example.com
  • shop.example.com

每个域名都有自己的 SSL 证书,这可能是由于不同的品牌策略、安全需求或者合规性要求,通过为每个域名配置单独的 SSL 证书,我们可以更好地管理证书的有效期、密钥交换机制以及中间证书链等细节。


Nginx 的基本 SSL 配置

在开始配置多个 SSL 证书之前,首先需要了解如何为单个域名设置 SSL,以下是一个简单的 Nginx 配置示例,用于为单个域名启用 HTTPS:

server {
    listen 443 ssl;
    server_name www.example.com;
    ssl_certificate /etc/nginx/ssl/www.example.com.crt;
    ssl_certificate_key /etc/nginx/ssl/www.example.com.key;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    location / {
        root /var/www/html;
        index index.html;
    }
}

在这个例子中,ssl_certificate 和 ssl_certificate_key 指令分别指定了证书文件和私钥文件的位置,还设置了支持的协议版本和加密套件。


配置多个 SSL 证书

为了支持多个域名,我们需要在 Nginx 中创建多个 server 块,每个块对应一个域名,并为其指定相应的 SSL 证书和密钥,以下是一个示例配置,展示了如何为三个不同域名配置 SSL:

server {
    listen 80;
    server_name www.example.com blog.example.com shop.example.com;
    return 301 https://$host$request_uri;
}
server {
    listen 443 ssl;
    server_name www.example.com;
    ssl_certificate /etc/nginx/ssl/www.example.com.crt;
    ssl_certificate_key /etc/nginx/ssl/www.example.com.key;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    location / {
        root /var/www/html;
        index index.html;
    }
}
server {
    listen 443 ssl;
    server_name blog.example.com;
    ssl_certificate /etc/nginx/ssl/blog.example.com.crt;
    ssl_certificate_key /etc/nginx/ssl/blog.example.com.key;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    location / {
        root /var/www/blog;
        index index.html;
    }
}
server {
    listen 443 ssl;
    server_name shop.example.com;
    ssl_certificate /etc/nginx/ssl/shop.example.com.crt;
    ssl_certificate_key /etc/nginx/ssl/shop.example.com.key;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    location / {
        root /var/www/shop;
        index index.html;
    }
}

在这个配置中,我们首先定义了一个监听 80 端口的 server 块,用于将所有 HTTP 请求重定向到 HTTPS,分别为 www.example.com、blog.example.com 和 shop.example.com 定义了三个 server 块,每个块都包含了对应的 SSL 证书和密钥路径。


自动化的证书管理工具

手动管理和更新多个 SSL 证书可能会变得繁琐且容易出错,为此,可以考虑使用自动化工具来简化这一过程,Let's Encrypt 是一个免费的 SSL 证书颁发机构,提供了命令行工具 certbot 来自动化获取和续订 SSL 证书,以下是使用 Certbot 配置 Let's Encrypt SSL 证书的步骤:

安装 Certbot

在大多数 Linux 发行版中,可以通过包管理器安装 Certbot,在 Ubuntu 上可以运行以下命令:

sudo apt-get update
sudo apt-get install certbot python3-certbot-nginx

获取 SSL 证书

使用 Certbot 获取 Let's Encrypt SSL 证书并自动将其配置到 Nginx 中:

sudo certbot --nginx -d www.example.com -d blog.example.com -d shop.example.com

自动续订证书

Certbot 可以定期检查即将到期的证书,并自动续订它们,你可以通过以下命令设置定时任务:

sudo crontab -e

添加以下行以每天凌晨 2 点检查一次证书是否需要续订:

0 2 * * * /usr/bin/certbot renew --quiet

常见问题及解决方法

证书链不完整

如果你的证书是由 CA 颁发的,那么你需要确保在 Nginx 中包含完整的证书链,通常情况下,CA 会提供一个中间证书文件,你可以将其附加到你的主证书文件中。

ssl_certificate /etc/nginx/ssl/www.example.com.crt;
ssl_certificate_key /etc/nginx/ssl/www.example.com.key;
ssl_trusted_certificate /etc/nginx/ssl/ca_bundle.crt;

浏览器显示错误

如果浏览器显示 SSL 错误,可能是由于证书配置不正确或证书链不完整导致的,检查日志文件(通常是 /var/log/nginx/error.log)以获取更多信息,并确保所有路径和文件名都是正确的。

性能优化

为多个域名配置 SSL 证书时,可能会导致额外的开销,为了提高性能,可以启用 OCSP Stapling 和 Session Tickets,OCSP Stapling 可以减少客户端验证证书的时间,而 Session Tickets 则可以帮助更快地建立连接,以下是相关的 Nginx 配置:

ssl_stapling on;
ssl_stapling_verify on;
ssl_session_tickets on;
ssl_session_timeout 1d;

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

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

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

分享给朋友:

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

租用云服务器合法吗?

租用云服务器通常合法,但具体取决于你使用的云服务提供商和使用方式。在某些情况下,租用云服务器可能涉及法律问题,例如网络连接、数据保护和隐私保护等问题。建议在使用云服务器之前,详细了解相关法律法规,并遵守相关的安全规范和规定。随着云计算的快速发展,越来越多的人开始尝试使用云服务器来存储和处理数据,许多...

香港服务器性价比高吗?

在香港租用服务器有多个选择,建议在考虑成本、安全性、性能等因素后进行比较。可以选择专业的云服务提供商如阿里云、腾讯云或华为云,并根据自己的需求选择适合的套餐和操作系统。还需要关注服务器的安全性和稳定性,确保数据安全和业务连续性。在选择香港服务器时,用户需要考虑多个因素,包括价格、性能、安全性、支持服...

如何每月支付一台服务器的费用?

租用服务器需要考虑多种因素,如操作系统、带宽、存储空间等。平均来看,一个标准的VPS服务器一个月的价格可能在20到30元人民币左右。而一年的价格则可以达到几百到几千元人民币不等。具体价格还需根据您的需求和所选服务提供商来确定。随着互联网的普及,越来越多的人开始将个人或小型企业迁移到网络上,服务器租赁...

品牌在线安全与可靠性,确保您的数字资产不受威胁

为了确保您的品牌在线安全性和可靠性,您应该采取一系列措施。确保您的网站具有有效的SSL证书,以保护用户数据的安全性。定期更新您的软件和系统,以修补已知的安全漏洞。实施 strong密码策略,并使用两步验证来增加账户安全性。定期进行渗透测试,以识别并修复潜在的安全风险。通过这些步骤,您可以增强品牌的在...

Qwen,选择哪个好用?

选择好的软件取决于您的需求和预算。如果你需要一个高效的办公软件,那么Microsoft Office可能是一个不错的选择;如果需要一个更专业的图像处理工具,那么Photoshop可能是更好的选择。在数字通信和网络安全领域,SSL(Secure Sockets Layer)证书起着至关重要的作用,它确...

购买SSL证书需要哪些?

购买SSL证书通常涉及选择合适的类型(如通用、标准或高级)、获取所需的域名信息,并进行支付。用户还需要考虑证书的有效期、更新频率以及是否需要通过权威机构认证等细节。一、选择SSL证书类型您需要根据您的网站需求和使用场景来选择合适的SSL证书,常见的SSL证书类型包括:通用型SSL证书:适用于所有网站...