Nginx服务器配置Let‘s Encrypt HTTPS证书完整指南

发布时间:2026/8/12 9:37:35
Nginx服务器配置Let‘s Encrypt HTTPS证书完整指南 1. Lets Encrypt HTTPS证书配置指南作为网站安全的基础设施HTTPS加密已成为现代互联网的标配。而Lets Encrypt作为免费、自动化的证书颁发机构(CA)彻底改变了SSL/TLS证书的获取方式。本指南将详细介绍如何为Nginx服务器配置Lets Encrypt证书涵盖从申请到续期的完整流程。2. 准备工作与环境配置2.1 系统要求检查在开始之前请确保您的服务器满足以下条件运行Linux操作系统推荐Ubuntu/Debian或CentOS已安装Nginx并正常运行拥有域名且已正确解析到服务器IP服务器开放了80和443端口提示可以通过nginx -v检查Nginx版本curl -I http://localhost测试Nginx是否正常运行。2.2 Certbot工具安装Certbot是Lets Encrypt官方推荐的客户端工具支持自动化证书申请和续期。根据系统不同安装方式略有差异对于Ubuntu/Debian系统sudo apt update sudo apt install certbot python3-certbot-nginx对于CentOS/RHEL系统sudo yum install epel-release sudo yum install certbot python3-certbot-nginx3. 证书申请与配置3.1 申请SSL证书使用Certbot为Nginx申请证书非常简单只需运行sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com这个命令会自动验证域名所有权通过HTTP-01挑战生成证书和私钥自动配置Nginx使用HTTPS注意将yourdomain.com替换为您的实际域名可以同时为主域名和子域名申请证书。3.2 Nginx配置详解Certbot会自动修改Nginx配置通常会在/etc/nginx/sites-available/目录下创建或修改配置文件。典型的HTTPS配置如下server { listen 443 ssl; server_name yourdomain.com www.yourdomain.com; ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem; # 其他配置... }4. 高级配置与优化4.1 安全加固配置为了获得更高的安全评级建议在Nginx中添加以下SSL配置ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256...; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_stapling on; ssl_stapling_verify on;4.2 自动续期设置Lets Encrypt证书有效期为90天设置自动续期非常重要。Certbot默认会创建定时任务但可以手动测试续期sudo certbot renew --dry-run如果测试成功真实的续期命令是sudo certbot renew5. 常见问题排查5.1 证书申请失败常见原因及解决方案域名解析问题确保域名已正确解析到服务器IP端口未开放检查80和443端口是否可访问Nginx配置错误确保Nginx正常运行且能响应HTTP请求5.2 HTTPS混合内容问题即使配置了HTTPS如果页面中加载了HTTP资源浏览器仍会显示不安全警告。解决方法确保所有资源使用相对路径或HTTPS URL添加内容安全策略(CSP)头使用upgrade-insecure-requests指令6. 最佳实践与经验分享在实际部署中我发现以下几点特别重要为所有子域名申请通配符证书使用DNS-01验证sudo certbot certonly --manual --preferred-challengesdns -d *.yourdomain.com定期检查证书状态可以设置监控告警考虑使用HSTS头增强安全性add_header Strict-Transport-Security max-age63072000; includeSubDomains; preload;对于高流量网站考虑使用OCSP Stapling减少验证延迟通过以上步骤您应该已经成功为Nginx服务器配置了Lets Encrypt HTTPS证书。这种配置不仅免费而且自动化程度高维护成本低是个人网站和小型企业的理想选择。