使用阿里云Certbot-DNS-Aliyun插件自动获取并更新免费SSL泛域名(通配符)证书

进入nginx docker,一般是Alpine Linux系统

  1. 依次执行命令:
bash 复制代码
sudo docker-compose exec nginx bash

apk update

apk add certbot 

apk add --no-cache python3 python3-dev build-base

apk add python3 py3-pip

pip3 install --upgrade pip

pip3 install certbot-dns-aliyun -i https://mirrors.aliyun.com/pypi/simple/ --default-timeout=100 --no-cache-dir

最后一步一直报错,把pip3版本改成21.3.1, python版本改为3.6成功了。

bash 复制代码
pip3 install --upgrade pip==21.3.1

pip3 --version
pip 21.3.1 from /usr/lib/python3.6/site-packages/pip (python 3.6)

2.创建阿里云RAM 用户账号,赋予AliyunDNSFullAccess权限,阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

sudo vi /etc/letsencrypt/aliyun.ini

在文件中添加以下内容:

certbot_dns_aliyun:dns_aliyun_access_key = your-access-key

certbot_dns_aliyun:dns_aliyun_access_key_secret = your-access-key-secret

3.生成证书

bash 复制代码
certbot certonly -a certbot-dns-aliyun:dns-aliyun --certbot-dns-aliyun:dns-aliyun-credentials /etc/letsencrypt/aliyun.ini  -d '*.xxx.com,xxx.com' --email xxx@163.com --config-dir /etc/nginx/ssl

--config-dir参数为证书存放路径,可以去掉,默认是/etc/letsencrypt/live/

bash 复制代码
vi /usr/local/bin/ssl_renew_and_reload.sh

在文件中添加以下内容:

复制代码
#!/bin/sh

certbot renew \
  -a certbot-dns-aliyun:dns-aliyun \
  --certbot-dns-aliyun:dns-aliyun-credentials /etc/letsencrypt/aliyun.ini \
  --email xxx@163.com \
  --config-dir /etc/nginx/ssl \
  --certbot-dns-aliyun:dns-aliyun-propagation-seconds 60 

nginx -s reload

设置权限:

bash 复制代码
chmod +x /usr/local/bin/ssl_renew_and_reload.sh

查看证书:

bash 复制代码
certbot certificates

4.定时任务

bash 复制代码
crontab -e

0 0 * * * /usr/local/bin/ssl_renew_and_reload.sh >> /var/log/letsencrypt/renew.log 2>&1

注意:

使用生成证书的命令是有接口限制的,因此不建议频繁调用,如果报错了先排查出问题再继续,可以在末尾加上--dry-run用于获取测试证书排查问题,没有报错后再去掉它获取正式证书

certbot certonly --webroot -w /home/wwwroot/xxx -d xxx.com --dry-run

sudo certbot renew --dry-run

查看生成的文件路径和参数:cat /etc/letsencrypt/renewal/域名.conf

运行:/usr/local/bin/ssl_renew_and_reload.sh

检查 /var/log/letsencrypt/letsencrypt.log 有没有错误

相关推荐
weixin_307779133 小时前
AWS Lambda解压缩S3 ZIP文件流程
python·算法·云计算·aws
运维行者_17 小时前
使用Applications Manager进行 Apache Solr 监控
运维·网络·数据库·网络安全·云计算·apache·solr
Britz_Kevin2 天前
从零开始的云计算生活——激流勇进,kubernetes模块之Pod资源对象
kubernetes·云计算·生活·#pod
阿湯哥2 天前
Cloud Computing(云计算)和Sky Computing(天空计算)
云计算
蜡笔小柯南3 天前
解决:nginx: [emerg] the “ssl“ parameter requires ngx_http_ssl_module
nginx·http·ssl
数据智能老司机3 天前
基于 Kubernetes 的平台工程——Kubernetes 上的平台化浪潮
kubernetes·云计算·devops
数据智能老司机3 天前
图算法趣味学——桥和割点
数据结构·算法·云计算
数据智能老司机3 天前
图算法趣味学——图遍历
数据结构·算法·云计算
苦逼IT运维3 天前
Jenkins + SonarQube 从原理到实战三:SonarQube 打通 Windows AD(LDAP)认证与踩坑记录
运维·服务器·windows·docker·云计算·jenkins·devops
在云上(oncloudai)3 天前
AWS KMS VS AWS Cloud HSM VS AWS Secret Manager?
云计算·aws