使用阿里云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 有没有错误

相关推荐
努力的小T27 分钟前
基于 Bash 脚本的系统信息定时收集方案
linux·运维·服务器·网络·云计算·bash
Linux运维老纪3 小时前
分布式存储的技术选型之HDFS、Ceph、MinIO对比
大数据·分布式·ceph·hdfs·云原生·云计算·运维开发
monkey224 小时前
AWS S3的费用优化
云计算·aws
HaoHao_0104 小时前
AWS Serverless Application Repository
服务器·数据库·云计算·aws·云服务器
monkey224 小时前
将AWS S3设置为类SFTP服务用于数据上传
云计算·aws
monkey226 小时前
AWS S3存储桶数据加密设定
云计算·aws
HaoHao_0106 小时前
AWS SimSpace Weaver
服务器·数据库·云计算·aws·云服务器
HaoHao_0106 小时前
AWS App Runner
服务器·云计算·aws·云服务器
浏览器爱好者6 小时前
如何在AWS上部署一个Web应用?
前端·云计算·aws
monkey226 小时前
AWS IAM用户启用MFA认证
云计算·aws