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

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

Nginx配置SSL证书从申请到部署的完整指南

2025-10-14SSL证书671

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

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

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


在当今互联网安全日益受到重视的背景下,网站启用 HTTPS 已成为保障数据传输安全的基本要求,作为全球最广泛使用的 Web 服务器之一,Nginx 凭借其高性能、低资源消耗以及出色的可扩展性,被大量应用于各类网站和网络服务中,为了确保用户访问时的数据加密与身份验证,必须为 Nginx 服务器正确配置 SSL/TLS 证书,本文将系统地介绍如何在 Nginx 中部署 SSL 证书,涵盖证书获取、配置文件修改、安全性优化及常见问题排查等内容,帮助开发者与运维人员高效完成 HTTPS 部署。


SSL/TLS 证书的基本概念

SSL(Secure Sockets Layer)是早期用于保障网络通信安全的加密协议,其后续版本 TLS(Transport Layer Security)现已成为行业标准,尽管“SSL”这一术语仍被广泛使用,但实际上大多数现代系统均采用 TLS 协议进行加密传输。

SSL/TLS 证书由受信任的证书颁发机构(CA, Certificate Authority)签发,包含公钥、域名信息、有效期、签发者身份等关键内容,当用户通过浏览器访问一个启用了 HTTPS 的网站时,客户端会验证服务器提供的证书是否合法,并基于该证书建立加密连接,从而防止数据被窃听或篡改。

根据验证级别的不同,SSL 证书主要分为三类:

  • DV(Domain Validation):仅验证域名所有权,适合个人博客或小型项目;
  • OV(Organization Validation):除域名外还需验证组织真实性,适用于企业官网;
  • EV(Extended Validation):最高级别验证,显示绿色地址栏(部分浏览器已取消此功能),多用于金融、电商等高安全需求场景。

对于绝大多数中小型应用而言,使用免费且自动化的 Let’s Encrypt 提供的 DV 证书即可满足基本安全需求。


获取 SSL 证书:以 Let’s Encrypt 为例

目前主流的证书获取方式包括购买商业证书和使用免费 CA 服务。Let’s Encrypt 因其开放性、自动化支持良好和完全免费的特点,成为社区最受欢迎的选择。

Let’s Encrypt 官方推荐使用 Certbot 工具来申请和管理证书,以下是具体操作步骤:

安装 Certbot 及 Nginx 插件

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

注:若系统为 CentOS/RHEL,请使用 yum 或 dnf 安装对应包。

申请并部署证书

运行以下命令,为指定域名申请证书:

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

Certbot 将自动执行以下操作:

  • 检测当前 Nginx 配置;
  • 与 Let’s Encrypt 进行 ACME 协议交互,完成域名所有权验证(通常通过 HTTP-01 或 DNS-01 挑战);
  • 自动下载并配置证书;
  • 更新 Nginx 配置以启用 HTTPS(可选)。

证书文件默认存储于 /etc/letsencrypt/live/example.com/ 目录下,主要包括:

  • fullchain.pem:完整的证书链(站点证书 + 中间证书);
  • privkey.pem:私钥文件,需严格保护,不可泄露。

配置 Nginx 启用 SSL

获取证书后,下一步是在 Nginx 中手动或自动配置 SSL 参数,建议先了解原始 HTTP 配置结构,再逐步升级至 HTTPS。

原始 HTTP 配置示例

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/html;
    index index.html;
}

改造为 HTTPS 支持的完整配置

    listen 80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}
# 主要 HTTPS 服务配置
server {
    listen 443 ssl http2;
    server_name example.com www.example.com;
    # 证书路径
    ssl_certificate     /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    # 启用现代 TLS 版本
    ssl_protocols       TLSv1.2 TLSv1.3;
    # 使用强加密套件,优先前向保密算法
    ssl_ciphers         ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384;
    # 关闭服务器端加密套件优先级(可根据实际情况开启)
    ssl_prefer_server_ciphers off;
    # 启用会话缓存以提升性能
    ssl_session_cache   shared:SSL:10m;
    ssl_session_timeout 10m;
    # 开启 HSTS(谨慎启用,一旦设置难以回退)
    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
    # 安全头设置(可选)
    add_header X-Content-Type-Options nosniff;
    add_header X-Frame-Options DENY;
    add_header X-XSS-Protection "1; mode=block";
    # 站点根目录与索引页
    root /var/www/html;
    index index.html;
    # 请求处理逻辑
    location / {
        try_files $uri $uri/ =404;
    }
}

⚠️ 注意事项:

  • 若需支持旧版客户端(如 IE8),可保留 TLSv1.1,但不推荐;
  • http2 需确保 Nginx 编译时启用了 --with-http_v2_module;
  • HSTS 设置后将在一定时间内强制浏览器使用 HTTPS,请确认无误后再上线。

测试与重启 Nginx 服务

配置完成后,务必先检查语法正确性,避免因错误导致服务中断。

sudo nginx -t

若输出如下信息,则表示配置无误:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

随后重新加载 Nginx 配置:

sudo systemctl reload nginx

此时访问 https://example.com,浏览器地址栏应显示锁形图标,点击可查看证书详情,表明 HTTPS 已成功启用。


实现证书自动续期

Let’s Encrypt 证书有效期仅为 90 天,因此必须配置自动续期机制,Certbot 自带 renew 命令,结合系统定时任务(cron)可实现无人值守维护。

添加每日自动检测任务

编辑 root 用户的 crontab:

sudo crontab -e

添加以下行,每天中午尝试续期:

0 12 * * * /usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx"

✅ 参数说明:

  • --quiet:静默模式,减少日志输出;
  • --post-hook:续期成功后自动重载 Nginx,确保新证书生效。

Certbot 仅会在证书即将到期(默认30天内)时才实际执行更新操作,不会频繁打扰服务器。


安全加固建议

除了基础的 SSL 配置,还应从多个层面进一步提升站点安全性:

措施 说明
启用 HSTS 强制浏览器始终使用 HTTPS 访问,防范中间人攻击;建议配合预加载列表提交至 hstspreload.org
配置 CSP(Content Security Policy) 防止 XSS 和恶意脚本注入,限制资源加载来源
定期更新系统与软件 包括 Nginx、操作系统、依赖库,及时修补已知漏洞
禁用不安全的协议与加密算法 如 SSLv3、TLSv1.0、弱加密套件(RC4、DES)等
使用安全扫描工具评估风险 推荐使用 SSL Labs 的 SSL Test 对站点进行评分和深度检测

还可考虑:

  • 使用 Diffie-Hellman 参数增强密钥交换安全性:

    sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

    并在 Nginx 中添加:

    ssl_dhparam /etc/ssl/certs/dhparam.pem;
  • 配置 OCSP Stapling 以加快证书状态验证速度:

    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8

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

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

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

分享给朋友:

“Nginx配置SSL证书从申请到部署的完整指南” 的相关文章

幻兽帕鲁服务器搭建,新手入门指南

幻兽帕鲁服务器搭建指南:从零开始,快速上手。通过本教程,您将学习如何配置和运行一个简单的幻兽帕鲁服务器,包括安装软件、设置环境变量、创建数据库和编写代码等步骤。我们还将提供一些实用的技巧和建议,帮助您更好地掌握服务器管理。在数字世界中,虚拟宠物(如《幻兽帕鲁》)因其可爱的外观和独特的玩法而受到玩家的...

境外服务器租用费用分析

境外服务器租用价格因地区、网络带宽、存储容量等因素而异。一般而言,每月费用从几百到几千美元不等。建议您在选择服务器时进行充分调研和比较,以获取最合适的报价。随着互联网技术的快速发展,越来越多的企业和个人选择在海外购买和租用服务器来提高自己的业务能力,这背后隐藏着一系列的费用问题,包括服务器租赁费用、...

SSL证书颁发机构的选择与分类

SSL证书颁发机构(CA)是为网站和应用程序提供安全加密的中间商。它们可以分为两种主要类型:根证书颁发机构(CA)和中间证书颁发机构(CA)。根证书颁发机构是最高级别的CA,负责签发其他CA的证书;而中间证书颁发机构则在特定范围内签发CA的证书。选择合适的CA取决于你的需求,包括安全性、认证水平以及...

众多企业可免费获得SSL证书

许多企业可以免费获得SSL证书。在当今数字化时代,网络安全已成为企业运营的重要保障,SSL证书(Secure Socket Layer)是一种安全协议,用于保护数据在网络传输中的安全性,防止黑客攻击和数据泄露,对于许多企业来说,拥有一个有效的SSL证书不仅可以提升网站的安全性,还可以增强用户的信任感...

什么是SSL证书?

SSL证书是一种安全协议,用于保护数据在传输过程中不被窃取或篡改。SSL(安全套接字层)证书是一种数字证书,用于确保数据在传输过程中不被中间人攻击,它保护了Web服务器和客户端之间的通信,防止信息泄露。SSL证书的分类1、自签名证书:由证书颁发机构签发,但没有经过第三方认证。2、企业证书:由权威的证...

AWS SSL证书购买步骤

AWS 提供了多种方式来购买 SSL 证书,包括通过 AWS Certificate Manager(ACM)和 AWS Certificate Authority(CA)。以下是详细的步骤指南:,,### 选择SSL证书类型,确定你所需的 SSL 证书类型。常见的类型包括:,- **自签名证书**...