今天分享一个强大的https证书管理神器:Certbot,它主要用于自动化Let's Encrypt证书的获取、安装和续期。Let's Encrypt是一个提供免费SSL/TLS证书的认证机构(CA),旨在推动整个Web使用加密连接。Certbot作为Electronic Frontier Foundation(EFF)的项目,极大地简化了SSL/TLS证书的管理过程。
以下是关于Certbot的详细介绍:
一、主要功能
1.自动获取证书
Certbot可以自动与Let's Encrypt服务器通信,验证域名所有权,并获取证书。
验证方法包括HTTP-01和DNS-01,其中HTTP-01通过在Web服务器上创建特定文件来验证,而DNS-01则通过修改域名的DNS记录来验证。
2.自动安装证书
Certbot可以自动配置大多数Web服务器(如Nginx和Apache)以使用获取到的证书。
它通过插件系统支持多种服务器和配置方式,确保证书能够顺利安装并启用HTTPS。
3.自动续期
Let's Encrypt证书的有效期为90天,Certbot可以定期检查证书的有效期并自动续期,确保证书不会过期。
这通过内置的cron job或systemd timer实现,确保服务的持续性和安全性。
二、安装与使用
#安装certbot
(yum install certbot python2-certbot-nginx -y ) || (apt-get update && apt-get install certbot python3-certbot-nginx -y)
#centos
yum install certbot python2-certbot-nginx -y
#ubuntu
apt-get update
apt-get install certbot python3-certbot-nginx -y
#alpine
apk add --no-cache certbot
#运行之后,会扫描你nginx里面所有的域名,可以选择需要添加ssl证书的域名
certbot --nginx
#单个域名证书不用交互
certbot --nginx -n --rsa-key-size 4096 --agree-tos --register-unsafely-without-email --domains down.abc.cn
#列出所有证书
certbot certificates
#测试更新过程而不实际更新证书,可以使用 --dry-run 选项
certbot renew --dry-run
#自动更新证书,证书到期前30天后会自动更新
certbot renew
certbot renew --nginx
#强制更新所有证书
certbot renew --force-renewal
#强制更新单个域名证书
certbot --nginx certonly --force-renewal -d down.abc.cn
#删除无效的证书
certbot delete --cert-name down.abc.cn
#无需交互即可删除证书
certbot delete --non-interactive --cert-name down.abc.cn
补充:
运行之后,会扫描你nginx里面所有的域名,可以选择需要添加ssl证书的域名
certbot --nginx
三、优势与特点
免费
得益于Let's Encrypt提供的免费证书服务,用户可以零成本地提升网站的安全性。
自动化
从证书申请到安装再到续签,Certbot全程自动化处理,大大减轻了运维负担。
兼容性
支持多种主流Web服务器和操作系统,适应性强。
安全性
所颁发的证书是全球认可的,有效保障了网络安全。
四、注意事项
1.在使用Certbot之前,需要确保服务器和域名已经正确配置,并且网络连接稳定。
2.验证过程中可能需要访问服务器的特定端口(如80或443),请确保这些端口没有被防火墙或其他服务占用。
3.如果遇到任何问题,可以查阅Certbot的官方文档或寻求相关技术支持。
如有疑问,欢迎交流,一起进步,做高效运维人!