当前位置: 首页 > news >正文

阿里云域名证书自动更新acme.sh

因为阿里云的免费证书只有三个月的有效期,每次更换都比较繁琐,所以找到了 acme.sh,还有一种 certbot 我没有去了解,就直接使用了 acme.sh 来更新证书,acme.sh 的主要特点就是:

  • 支持多种 DNS 服务商
  • 自动化续期
  • 直接指定证书路径

足以解决证书有效期问题。

1. 安装 acme.sh

如果尚未安装 acme.sh,切换到常用安装目录下通过以下命令安装,并加载环境变量和系统配置::

curl https://get.acme.sh | sh -s email=your_email@example.com
source ~/.bashrc

其他安装方式:

git clone https://gitee.com/neilpang/acme.sh.git
cd acme.sh
./acme.sh --install -m your_email@example.com
source ~/.bashrc

2. 获取阿里云 DNS API 密钥

登录阿里云控制台,进入 RAM 访问控制,创建一个具有 DNS 管理权限的子用户,并获取其 AccessKey IDAccessKey Secret



可参考 创建RAM用户 帮助文档查看详细规则。



在这里插入图片描述
创建用户账号后分配权限,选择 AliyunDNSFullAccess 为一个子用户授予完全管理云解析DNS 的权限。分配完成后会列表中会有复制按钮,需要保存你的 AccessKey IDAccessKey Secret,之后无法获取。

详细步骤参考 子用户权限管理 帮助文档。

3. 配置阿里云 DNS

上一步获取到的 AccessKey IDAccessKey Secret API 秘钥,配置到 acme.sh 中:

vim acme.sh
export Ali_Key="your_aliyun_access_key"
export Ali_Secret="your_aliyun_access_secret"

4. 申请 SSL 证书并自动续期

申请证书

acme.sh --issue --dns dns_ali -d example.com

创建证书存放目录

mkdir -p /etc/nginx/cert/example.com

安装证书并设置自动更新

acme.sh --install-cert -d example.com \
  --certpath /etc/nginx/cert/example.com/cert.pem \
  --keypath /etc/nginx/cert/example.com/privkey.pem \
  --fullchainpath /etc/nginx/cert/example.com/fullchain.pem \
  --reloadcmd "systemctl reload nginx"

检查自动续期配置

crontab -l

acme 自动设置定时任务,定期检查并更新证书,无需手动操作。
在这里插入图片描述

5. 域名解析到当前服务器并修改nginx配置文件

阿里云域名解析到当前服务器:
在这里插入图片描述

server
{
        listen 80;
        server_name example.com;
        rewrite ^(.*) https://$host$1 permanent;
}

server {
        listen          443 ssl;
        server_name     example.com;
        root            /root/example.com/public_html/public;
        index           index.php index.html index.htm;

        ssl_certificate      /etc/nginx/cert/example.com/fullchain.pem;
        ssl_certificate_key  /etc/nginx/cert/example.com/privkey.pem;
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;

		...

}

6. acme常用命令

查看证书列表:

acme.sh --list
或
"/root/.acme.sh"/acme.sh --list

查看证书信息:

acme.sh --info -d example.com

手动续期证书:

acme.sh --renew -d example.com

删除证书

acme.sh --remove -d example.com

7. 注意事项

  • 证书默认有效期为 90 天,acme.sh 会自动续期。
  • 如果使用其他 DNS 服务商,需调整相应的 API 配置。
  • 更多详细配置参考官方文档:

过程中遇到的问题

openssl 版本过低。

centos7|操作系统|升级openssl-1.0.2k到openssl-3.3.0

相关文章:

  • 在 Windows 上设置 vm.max_map_count 参数
  • 在ubuntu24上装ubuntu22
  • docker相关命令
  • Vue3实战三、Axios封装结合mock数据、Vite跨域及环境变量配置
  • Linux-CentOS-7—— 配置静态IP地址
  • PyTorch 笔记
  • Next.js + SQLite 项目 Docker 生产环境部署方案
  • 从数据到成果:R 语言在气象水文全流程中的关键技术应用
  • linux查看当前文件夹下面文件大小
  • 队列➕宽搜(BFS)算法的应用
  • Invalid bound statement (not found)
  • OceanBase V4.3.5 上线全文索引功能,让数据检索更高效
  • 【UE5 C++课程系列笔记】34——结构体与Json的相互转化
  • VBA第三十九期 VBA自动把工作表转换成PPT
  • CExercise_06_1指针和数组_1查找数组的最大值和最小值
  • 数据库——Redis
  • 使用 `keytool` 生成 SSL 证书密钥库
  • 【DeepSeek工具教程】IntersectionObserver+API分页懒加载实现指南之React项目1
  • 【KMP】P7114 [NOIP2020] 字符串匹配|省选-
  • 蓝桥杯 封闭图形个数 刷题笔记
  • 看展 | 黄永玉新作展,感受赤子般的生命力
  • 气急败坏!20多名台湾艺人被台当局列为“重点核查对象”
  • 信俗与共:清代新疆回疆儒释道庙宇的中华政教
  • 上百家单位展示AI+教育的实践与成果,上海教育博览会开幕
  • 张国清将赴俄罗斯举行中俄“长江—伏尔加河”地方合作理事会第五次会议和“东北—远东”政府间合作委员会双方主席会晤
  • 昔日千亿房企祥生集团约2.03亿元债权被拍卖,起拍价8000万元