




适用场景:
light-test.motestxing.com
先确认域名解析是否正确:
ping light-test.motestxing.com
确认 80 端口可以正常访问:
http://light-test.motestxing.com/
Nginx 至少需要存在:
server {
listen 80;
server_name light-test.motestxing.com;
}
如果服务器的系统 Python 曾经给其他项目使用过,不建议使用 apt 版 Certbot。
原因是 apt 版 Certbot 会依赖系统 Python,容易出现:
urllib3
requests
requests_toolbelt
cryptography
等包版本冲突。
推荐使用 Snap 版 Certbot,它和现有 Python 环境隔离。
安装:
sudo snap install core
sudo snap refresh core
然后:
sudo snap install --classic certbot
检查:
/snap/bin/certbot --version
也可以创建软链接:
sudo ln -s /snap/bin/certbot /usr/bin/certbot
如果提示文件已经存在,可以直接继续使用:
/snap/bin/certbot
执行:
sudo /snap/bin/certbot --nginx -d light-test.motestxing.com
Certbot 会自动:
成功后访问:
https://light-test.motestxing.com/
通常位于:
/etc/letsencrypt/live/light-test.motestxing.com/
主要文件:
fullchain.pem
privkey.pem
Nginx 中类似:
server {
listen 443 ssl;
server_name light-test.motestxing.com;
ssl_certificate /etc/letsencrypt/live/light-test.motestxing.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/light-test.motestxing.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8190;
}
}
可以配置:
server {
listen 80;
server_name light-test.motestxing.com;
return 301 https://$host$request_uri;
}
修改 Nginx 后检查:
sudo nginx -t
没有报错后:
sudo systemctl reload nginx
Let's Encrypt 证书有效期通常为 90 天。
Snap 安装的 Certbot 会自动处理续期。
可以手动测试:
sudo /snap/bin/certbot renew --dry-run
如果成功,说明自动续期基本没有问题。
sudo /snap/bin/certbot certificates
可以看到:
Certificate Name
Domains
Expiry Date
Certificate Path
Private Key Path
如果出现:
ImportError: cannot import name 'appengine' from 'urllib3.contrib'
并且路径同时出现:
/usr/lib/python3/dist-packages/certbot/
以及:
/usr/local/lib/python3.10/dist-packages/urllib3/
说明:
apt 安装的 Certbot
↓
依赖系统 Python
↓
加载到了以前 pip 安装的 urllib3
↓
版本不兼容
如果服务器系统 Python 给其它项目用过,不要随便卸载或降级 urllib3:
sudo pip3 uninstall urllib3
这种操作可能影响其它项目。
更安全的方式是:
sudo apt remove certbot python3-certbot-nginx -y
sudo snap install --classic certbot
然后使用:
sudo /snap/bin/certbot --nginx -d light-test.motestxing.com
可以。
Let's Encrypt 是正规的 CA,主流:
Chrome
Safari
Firefox
Android
iOS
都支持。
对于普通:
Web 网站
H5
API
后台管理系统
测试环境
完全可以使用。
免费证书和普通付费 DV 证书的 HTTPS 加密能力没有本质区别。
付费证书更多优势在于:
普通业务没有这些需求时,Let's Encrypt 足够使用。
以后给一个新域名申请 HTTPS,基本记住这几条即可:
# 安装 Certbot
sudo snap install --classic certbot
# 申请证书并自动配置 Nginx
sudo /snap/bin/certbot --nginx -d light-test.motestxing.com
# 检查 Nginx
sudo nginx -t
# 重载 Nginx
sudo systemctl reload nginx
# 测试自动续期
sudo /snap/bin/certbot renew --dry-run
最终访问:
https://light-test.motestxing.com/
即可。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。