手把手教你为Linux云服务器配置Let's Encrypt免费SSL证书
在当今互联网环境中,SSL证书已成为网站标配。Let's Encrypt作为免费、自动化的证书颁发机构(CA),让每个网站都能轻松实现HTTPS加密。本文将详细介绍在Linux云服务器上通过Certbot工具获取并安装Let's Encrypt SSL证书的全过程。
一、准备工作
- 拥有域名并完成DNS解析(A记录指向服务器IP)
- root权限的Linux云服务器(本文以Ubuntu 20.04为例)
- 已安装并运行的Web服务(如Nginx/Apache)
- 开放80和443端口(Let's Encrypt验证需要)
二、安装Certbot客户端
Certbot是Let's Encrypt官方推荐的证书管理工具:
# 更新软件包列表
sudo apt update
# 安装Certbot及其Nginx插件(Apache用户替换为python3-certbot-apache)
sudo apt install certbot python3-certbot-nginx -y
三、获取SSL证书
两种常用验证方式(任选其一):
方式1:Webroot验证(需网站已上线)
sudo certbot certonly --webroot -w /var/www/html -d example.com -d www.example.com
方式2:独立验证(无需Web服务运行)
sudo certbot certonly --standalone -d example.com -d www.example.com
成功后会显示证书存储路径:
/etc/letsencrypt/live/example.com/
四、配置Web服务器
Nginx配置示例:
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;
# 其他配置...
}
# HTTP强制跳转HTTPS
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
测试并重载配置:
sudo nginx -t
sudo systemctl reload nginx
五、证书自动续期
Let's Encrypt证书有效期为90天,建议设置自动续期:
# 测试续期命令
sudo certbot renew --dry-run
# 添加定时任务(每月1号凌晨3点执行)
(crontab -l 2>/dev/null; echo "0 3 1 * * /usr/bin/certbot renew --quiet") | crontab -
六、常见问题解决
- 验证失败:检查域名解析是否正确,80端口是否开放
- 证书不生效:确认Web服务器配置正确,443端口开放
- 续期失败:检查certbot日志/var/log/letsencrypt/
七、安全增强建议
配置完成后,建议:
- 启用HSTS头部(增加安全性)
- 配置TLS 1.2/1.3,禁用不安全的加密套件
- 定期检查证书状态(certbot certificates)
通过以上步骤,您的网站已获得专业级的HTTPS加密保护。Let's Encrypt的自动化特性让SSL证书管理变得前所未有的简单,建议所有网站管理员都尽快部署。
