Let’s Encrypt免费SSL证书申请

Let’s Encrypt是目前最主流的免费SSL证书提供商,证书有效期90天,支持自动续期。我用的是雨云的服务器,配置低但跑个网站足够,性价比确实不错。下面直接说怎么搞。 环境准备 需要一台Linux服务器(Ubuntu/Debian/CentOS都行),域名已经解析到服务器IP,80和443端口开放。Let’s Encrypt验证域名所有权需要访问你的服务器。 安装Certbot Certbot是Let’s Encrypt官方客户端,用包管理器装就行。 Ubuntu/Debian:
sudo apt update
sudo apt install certbot python3-certbot-nginx
如果你用Apache,把nginx改成apache。 CentOS/RHEL 8+:
sudo dnf install certbot python3-certbot-nginx
申请证书 假设你的域名是example.com,Nginx已经跑着。
sudo certbot --nginx -d example.com -d www.example.com
第一次运行会让你输入邮箱(用于到期提醒),同意服务条款。Certbot会自动修改Nginx配置,添加SSL相关指令。完成后访问https://example.com就能看到小锁。 如果不想让Certbot改配置,只想拿到证书文件自己配:
sudo certbot certonly --nginx -d example.com -d www.example.com
证书文件在/etc/letsencrypt/live/example.com/下: – fullchain.pem: 证书链 – privkey.pem: 私钥 Nginx手动配置 拿到证书后,在Nginx配置里加上:
server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    # 其他配置...
}

server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}
检查配置并重载:
sudo nginx -t
sudo systemctl reload nginx
自动续期 Let’s Encrypt证书只有90天,必须自动续。Certbot自带续期命令:
sudo certbot renew
这个命令会检查所有证书,到期前30天内才会真正续期。没到期的证书直接跳过。 用crontab设置每天执行两次:
sudo crontab -e
添加一行:
0 0,12 * * * /usr/bin/certbot renew --quiet
–quiet表示不输出日志,除非出错。这样每天零点和中午12点各检查一次,保证证书不会过期。 也可以加–post-hook在续期成功后重启Nginx:
0 0,12 * * * /usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx"
验证续期是否正常 手动测试续期流程(不会真的续,只是模拟):
sudo certbot renew --dry-run
看到”Congratulations, all simulated renewals succeeded”就说明配置没问题。 多域名泛域名 Let’s Encrypt支持泛域名证书,但必须用DNS验证方式。比如*.example.com:
sudo certbot certonly --manual --preferred-challenges dns -d *.example.com
它会让你在DNS记录里加一个TXT记录,验证通过后发证书。这种方式没法自动续期,除非你写脚本调用DNS API。个人不推荐泛域名,除非你有很多子域名。 常见问题 1. 申请失败提示”too many certificates already issued” – Let’s Encrypt有速率限制,每周每个域名最多50个证书。正常使用不会触发。 2. 证书续期失败 – 检查80端口是否通,因为续期也是先验证域名。如果服务器在NAT后面,确认端口映射正确。 3. Nginx配置里ssl_certificate路径写错 – 检查/etc/letsencrypt/live/你的域名/目录下有没有文件。权限问题用ls -la看看。 4. 浏览器提示证书不安全 – 确认域名和证书里的域名完全匹配,包括www和不带www。 小技巧 – 申请时加–dry-run可以测试流程但不真正发证书 – 证书快到期时,手动sudo certbot renew –force-renewal强制续期 – 查看所有证书状态:sudo certbot certificates – 吊销证书:sudo certbot revoke –cert-path /etc/letsencrypt/live/example.com/cert.pem 雨云的服务器我用了两年多,申请Let’s Encrypt证书一直很稳,自动续期从来没出过问题。如果你也在用雨云,直接按上面的步骤操作就行,不需要额外配置防火墙规则,默认就放行了80和443。

雨云是国内一家老牌云服务商,提供高性价比的云服务器和虚拟主机。我用它部署了好几个项目,速度和稳定性都不错。通过 https://www.rainyun.com/SAJA_ 注册可以领一张 5折优惠券,有需要的朋友可以看看。

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容