在后浪云上使用NGINX配置Let’s Encrypt SSL证书
引言
在现代Web应用中,HTTPS已成为安全通信的标准,SSL/TLS证书是其核心。Let’s Encrypt提供免费的SSL证书,并通过自动化工具简化配置流程。本文以后浪云VPS为例,介绍如何在NGINX上配置Let’s Encrypt证书,结合技术原理和实践步骤,为开发者和系统管理员提供安全部署指南。
案例分析:后浪云上的电商网站加密
假设我们在后浪云HK-1H2G VPS(1核CPU、2GB DDR4内存、30GB SSD、1Mbps带宽,月费¥30)上部署一个电商网站,域名example.com已通过后浪云域名服务解析到VPS的公网IP。为保护用户数据,我们需启用HTTPS。使用Let’s Encrypt的HTTP-01验证,我们快速配置了SSL证书,确保了安全的客户访问体验。
技术原理:Let’s Encrypt与NGINX
Let’s Encrypt机制
Let’s Encrypt是一个由非营利组织运营的证书颁发机构,提供90天有效期的免费SSL/TLS证书。其通过ACME协议(Automated Certificate Management Environment)实现证书的自动化颁发、验证和续期。常用验证方式包括:
- HTTP-01:通过Web服务器验证域名控制权,适合已解析域名的场景。
- DNS-01:通过DNS TXT记录验证,适合泛域名或无公网IP的场景。
NGINX与SSL
NGINX通过ssl模块支持HTTPS,需配置证书路径和安全参数。Let’s Encrypt的Certbot工具可自动修改NGINX配置文件,添加SSL支持,简化部署流程。
实践指南:在后浪云VPS上配置Let’s Encrypt
以下是在Ubuntu 20.04的NGINX服务器上配置Let’s Encrypt证书的步骤,适用于后浪云VPS。
步骤1:安装Certbot
安装Certbot及其NGINX插件:
# 更新包列表并安装Certbot
sudo apt update
sudo apt install -y certbot python3-certbot-nginx
步骤2:配置NGINX
确保NGINX配置文件正确设置域名:
# /etc/nginx/sites-available/example.com
server {
listen 80;
server_name example.com www.example.com;
root /var/www/html;
index index.html;
}
验证并重载配置:
# 检查配置
sudo nginx -t
# 重载NGINX
sudo systemctl reload nginx
在案例中,我们确认example.com已通过后浪云域名服务解析到VPS的IP。
步骤3:获取SSL证书(HTTP-01验证)
使用Certbot自动获取证书并配置NGINX:
# 获取并配置证书
sudo certbot --nginx -d example.com -d www.example.com
按提示输入邮箱地址并同意条款。Certbot将:
- 验证域名通过HTTP-01挑战。
- 颁发证书并存储到
/etc/letsencrypt/live/example.com/. - 更新NGINX配置以启用HTTPS。
验证配置文件:
sudo nginx -t
sudo systemctl reload nginx
访问https://example.com确认HTTPS生效。
步骤4:配置DNS-01验证(备选方案)
若需泛域名证书或无公网IP,使用DNS-01验证:
- 安装Certbot:
sudo apt install -y certbot
- 运行DNS-01挑战:
sudo certbot certonly --manual --preferred-challenges dns -d example.com -d *.example.com
- 添加TXT记录:
- Certbot返回TXT记录,如
_acme-challenge.example.com和值。 - 在后浪云DNS管理面板添加TXT记录。
- 等待DNS传播(几分钟)。
- Certbot返回TXT记录,如
- 验证DNS记录:
nslookup -q=TXT _acme-challenge.example.com
- 完成验证并获取证书,按Enter继续。证书存储在
/etc/letsencrypt/live/example.com/。 - 更新NGINX配置:
# /etc/nginx/sites-available/example.com
server {
listen 443 ssl;
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;
root /var/www/html;
index index.html;
}
重载NGINX:
sudo nginx -t
sudo systemctl reload nginx
步骤5:验证与续期
测试证书自动续期:
# 模拟续期
sudo certbot renew --dry-run
Certbot默认配置了cron任务,确保证书每90天自动续期。检查续期任务:
cat /etc/cron.d/certbot
步骤6:优化SSL配置(可选)
增强安全性,添加推荐的SSL参数:
# /etc/nginx/sites-available/example.com
server {
listen 443 ssl;
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;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
}
重载配置:
sudo nginx -t
sudo systemctl reload nginx
技术对比:HTTP-01 vs. DNS-01
- HTTP-01:简单快速,适合后浪云VPS(如HK-1H2G)的公网IP场景,依赖80端口开放。
- DNS-01:支持泛域名和无公网IP场景,适合复杂DNS配置,但需手动或API管理TXT记录。
在案例中,HTTP-01验证因其自动化程度高而成为首选。
技术经验分享
通过在后浪云VPS上配置Let’s Encrypt,我们为电商网站实现了安全的HTTPS访问。以下是关键经验:
- 域名解析:后浪云域名服务提供快速DNS传播,加速验证。
- 高性能支持:后浪云的SSD存储和1Mbps带宽确保了NGINX的高效运行。
- 自动化续期:Certbot的cron任务简化了证书维护。
- 安全优化:添加TLSv1.3支持提升了加密性能。
进一步资源可参考Let’s Encrypt文档或后浪云技术支持。
总结
通过Let’s Encrypt和Certbot,我们在后浪云VPS上快速配置了NGINX的SSL证书,确保了网站的安全性。结合后浪云的高性能硬件和可靠DNS服务,开发者和系统管理员可轻松实现HTTPS部署,提升用户信任和系统安全性。

