官方FAQ常见问题 - Let's Encrypt
假设域名为 www.521.com 申请和自动续订 Let's Encrypt 的免费 SSL 证书
当然可以!下面是每个步骤的详细解释,确保你能顺利地为你的域名 www.zjx521.com 申请和自动续订 Let's Encrypt 的免费 SSL 证书。
1. 安装 Certbot
在 Debian/Ubuntu 上
sudo apt update
sudo apt install certbot python3-certbot-nginx
sudo apt update:更新包列表,确保你安装的是最新版本的软件包。sudo apt install certbot python3-certbot-nginx:安装 Certbot 及其 Nginx 插件。python3-certbot-nginx插件用于自动配置 Nginx。
在 CentOS/RHEL 上
sudo yum install epel-release
sudo yum install certbot python3-certbot-nginx
sudo yum install epel-release:安装 EPEL(Extra Packages for Enterprise Linux)仓库,因为 Certbot 不在默认的 RHEL/CentOS 仓库中。sudo yum install certbot python3-certbot-nginx:安装 Certbot 及其 Nginx 插件。
在 Arch Linux 上
sudo pacman -S certbot nginx
sudo pacman -S certbot nginx:安装 Certbot 和 Nginx。Arch Linux 的包管理器pacman会自动处理依赖关系。
2. 获取证书
使用 Nginx 插件
sudo certbot --nginx -d www.521.com
sudo certbot --nginx -d www.521.com:使用 Nginx 插件为www.521.com申请证书。Certbot 会自动配置 Nginx 以启用 HTTPS。
手动获取证书
sudo certbot certonly --standalone -d www.521.com
sudo certbot certonly --standalone -d www.zjx521.com:使用 standalone 模式手动获取证书。standalone 模式会启动一个临时的 Web 服务器来验证域名所有权,因此需要确保 80 端口未被占用。
3. 配置 Nginx
编辑你的 Nginx 配置文件,通常位于 /etc/nginx/sites-available/default 或 /etc/nginx/conf.d/your-site.conf。
server {
listen 80;
server_name www.521.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name www.521.com;
ssl_certificate /etc/letsencrypt/live/www.521.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.521.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
# 其他配置
location / {
root /var/www/html;
index index.html index.htm;
}
}
listen 80;:监听 HTTP 请求。server_name www.521.com;:指定服务器名称。return 301 https://$host$request_uri;:将 HTTP 请求重定向到 HTTPS。listen 443 ssl;:监听 HTTPS 请求。ssl_certificate /etc/letsencrypt/live/www.521.com/fullchain.pem;:指定 SSL 证书文件路径。ssl_certificate_key /etc/letsencrypt/live/www.521.com/privkey.pem;:指定 SSL 私钥文件路径。ssl_protocols TLSv1.2 TLSv1.3;:指定支持的 SSL 协议版本。ssl_ciphers:指定支持的加密套件。ssl_prefer_server_ciphers on;:优先使用服务器的加密套件。location / { ... }:定义根目录和默认索引文件。
4. 重启 Nginx
保存配置文件后,重启 Nginx 以应用更改:
sudo systemctl restart nginx
5. 自动续订
Certbot 会在证书到期前自动续订证书。默认情况下,Certbot 会每天运行一次续订任务。你可以通过以下命令手动测试续订过程:
sudo certbot renew --dry-run
sudo certbot renew --dry-run:模拟续订过程,确保一切正常。
6. 配置定时任务
虽然 Certbot 默认会每天运行一次续订任务,但为了确保万无一失,你可以手动配置一个定时任务。编辑 /etc/crontab 文件,添加以下行:
0 3 * * * root /usr/bin/certbot renew --quiet && systemctl reload nginx
或者
echo '0 3 * * * root /usr/bin/certbot renew --quiet && systemctl reload nginx' >> /etc/crontab
0 3 * * *:每天凌晨3点执行任务。root:以 root 用户身份运行。/usr/bin/certbot renew --quiet:运行 Certbot 续订命令,并静默输出。&& systemctl reload nginx:如果续订成功,重新加载 Nginx 配置。
7. 验证证书
你可以使用浏览器或在线工具(如 SSL Labs 的 SSL Test)来验证证书是否正确安装和配置。


1万+

被折叠的 条评论
为什么被折叠?



