当前位置:首页 > Linux > 正文内容

用acme.sh自动签发由阿里云托管域名的泛域名证书

Yusoon1个月前 (10-17)Linux81

步骤 1:安装 acme.sh(官方一键脚本)

# 安装
curl https://get.acme.sh | sh -s email=你的邮箱@example.com

# 让当前 shell 立即识别命令
source ~/.bashrc

安装完成后,acme.sh 位于 ~/.acme.sh/,并已自动创建 cron 任务。

步骤 2:配置阿里云 DNS API 密钥(RAM 子用户)

1、登录阿里云控制台 → RAM → 用户 → 创建用户 → 勾选编程访问
2、权限策略:AliyunDNSFullAccess
3、拿到 AccessKey ID 和 AccessKey Secret

# 写入全局环境变量(重启也生效)
echo 'export Ali_Key="LTAIxxxxxxxxxx"' >> /etc/profile
echo 'export Ali_Secret="xxxxxxxxxxxxxxxxxxxxxxxxxxxx"' >> /etc/profile
source /etc/profile

步骤 3:签发泛域名证书(DNS 验证)

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

多域名时使用

acme.sh --issue --dns dns_ali \
  -d example.com \
  -d '*.example.com' \
  -d '*.child.example.com'
要点

1、每个 -d 只带一个域名
2、通配符必须用单引号包住,防止 shell 展开
3、可以混用普通域名 + 多个通配符,一张证书全覆盖
4、签发后所有域名会写进 SAN 字段,Nginx 里随便哪个 server_name 只要匹配其中一项就合法

成功后会看到:

Cert success.
证书已保存在 ~/.acme.sh/example.com/

步骤 4:安装证书到 Nginx(统一路径)

# 创建目录
mkdir -p /etc/nginx/ssl

# 安装并指定 reload 命令
acme.sh --install-cert -d example.com \
  --key-file       /etc/nginx/ssl/example.com.key \
  --fullchain-file /etc/nginx/ssl/fullchain.cer \
  --reloadcmd     "nginx -s reload"

续期成功后自动复制新证书并重载 Nginx。
若/etc/nginx/ssl/目录下无.key文件,则重新运行命令。

步骤 5:设置提前 3 天续期(全局生效)

# 立即生效并写入配置
acme.sh --set-default-ca --server letsencrypt
acme.sh --cron --home ~/.acme.sh --days 3

步骤 6:验证自动续期逻辑

# 手动模拟 cron 运行
acme.sh --cron --home ~/.acme.sh --days 3

如果证书剩余天数 > 3,提示 Skip;
如果 ≤ 3,会立即续期并重启 Nginx。

步骤 7:查看证书信息 & 剩余天数

# 列表
acme.sh --list

# 详细
acme.sh --info -d example.com

步骤 8:确认 cron 任务存在(默认已创建)

crontab -l

扫描二维码推送至手机访问。

版权声明:本文由Yusoon - ZBlog发布,如需转载请注明出处。

本文链接:https://blog.bee1001.com/?id=40

分享给朋友:

“用acme.sh自动签发由阿里云托管域名的泛域名证书” 的相关文章

解决linux磁盘空间不足的方法

1、查看磁盘信息df -h2、查看当前目录下文件或文件夹大小信息du -h --max-depth=13、层层查看,找到罪魁祸首cd <大文件> du -h --max-depth=14、删除无用大文件这时最简单的办法就是找到大且无用的文件并删除,首选就是log文件。 rm -rf...

journalctl命令的用法

journalctl -n 3 ##日志的最新3条 --since "2020-05-01 11:00:00" ##显示11:00后的日志 --until "20...

Linux 系统 /var/log/journal/ 垃圾日志清理

systemd-journald是一个改进型日志管理服务,可以收集来自内核、系统早期启动阶段的日志、系统守护进程在启动和运行中的标准输出和错误信息,还有syslog的日志。 systemd-journal日志服务仅仅把日志集中保存在单一结构的日志文件/run/log中,由于日志是经历过压缩和格式化...

介绍几个 Linux 命令

df -h 查看整个磁盘的空间使用情况 du -sh /* 查询某个路径下的数据大小 docker system prune -a 清理 docker 容器 find / -type f -size +100M -print0 | xargs -0 du -h | sort -nr 查...

Linux中vim中进行替换/批量替换

˂a name="一:在 Vim 中进行文本替换的操作是通过使用 :s(substitute)命令来实现的。这里是一些基本的替换命令" class="reference-link" href="#"˃一:在 Vim 中进行文本替换的操作是通过使用 :s(substitute)命令来实现的。这里是一些...

Linux操作系统之Docker、nginx安装

Docker安装 不同操作系统的服务器安装大同小异,这里以 CentOS 为例。 第一步:移除旧版本为确保本次安装是全新安装,需要先移除已经安装的旧版本。 sudo yum remove -y docker \ docker-client \...