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

相关推荐
MyFreeIT9 小时前
Let‘s Encrypt SSL 製作免費證書
网络协议·https·ssl
00后程序员张12 小时前
Android证书绑定抓包失败?Android SSL Pinning绕过实战指南
android·网络协议·计算机网络·网络安全·adb·https·ssl
故乡dee云12 小时前
多云账单代付靠谱吗?付款流程、费用核对和账号安全注意事项
安全·阿里云·云计算·腾讯云
fengkai454513 小时前
三、存储基础知识
华为·云计算·存储
武帝为此15 小时前
【TLS SSL 介绍】
网络·网络协议·ssl
C厂工沛16 小时前
安装VMware tools时无法在更新系统中找到组件?(解决)
云计算
weixin_3077791317 小时前
Databricks里用PySpark统计指定表和字段中各字段的空值、空字符串或零值比例
运维·数据仓库·python·spark·云计算
ai小陈3 天前
大模型推理显存不够怎么办?量化、KV Cache与CPU Offload优化实战
大数据·人工智能·ai·云计算·gpu算力
@HNUSTer3 天前
基于 GEE 的 Sentinel-2 多光谱数据实现河流浊度指数(NDTI)遥感监测
云计算·数据集·遥感大数据·gee·云平台·河流浊度(ndti)·水质遥感反演
DolitD3 天前
云流技术深度剖析:单服务器下如何实现3D应用的多实例并发?
java·服务器·前端·3d·云原生·云计算