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

Ubuntu系统 用acme.sh自动签发由腾讯云托管域名的泛域名证书

Yusoon8小时前Linux1

1. 安装 acme.sh

# 1. 从 Gitee 克隆 acme.sh 源码
git clone https://gitee.com/neilpang/acme.sh.git

# 2. 进入目录并执行安装
cd acme.sh
./acme.sh --install -m 2497209071@qq.com

# 3. 回到用户目录并让命令生效
cd ~
source ~/.bashrc

2. 设置默认 CA 并导出腾讯云 API 密钥

为了确保证书来自 Let’s Encrypt,并让 acme.sh 能调用腾讯云 API,需要进行以下设置。

# 将默认证书颁发机构设为 Let's Encrypt (acme.sh 默认可能是 ZeroSSL)[citation:4][citation:8]
acme.sh --set-default-ca --server letsencrypt

# 导出腾讯云的 API 密钥,用于 DNS 验证
export Tencent_SecretId="你的SecretId"
export Tencent_SecretKey="你的SecretKey"

3. 重新签发证书 (DNS 验证)

使用 –issue 命令,配合 –dns dns_tencent 参数,为你的域名重新签发证书。请将 example.com 替换为你自己的域名。

# 同时为 example.com 和 *.example.com 申请证书,实现泛域名支持
acme.sh --issue --dns dns_tencent -d example.com -d '*.example.com'

4. 安装证书到 Nginx 目录

这一步很重要,它会将新签发的证书和私钥复制到你指定的、Nginx 实际读取的目录,并设置续期后自动重载 Nginx 的命令。请务必使用 –install-cert 命令,而不是直接复制 ~/.acme.sh/ 下的文件,因为后者无法享受自动部署的便利。

先确保你的 Nginx 证书存放目录存在,例如 /etc/nginx/ssl。

acme.sh --install-cert -d example.com \
--key-file       /etc/nginx/ssl/example.com.key \
--fullchain-file /etc/nginx/ssl/example.com.pem \
--reloadcmd      "systemctl reload nginx"

5. 确认并重启 Nginx

虽然 Nginx 配置没变,但为了确保一切正常,可以手动重载一次,然后测试 acme.sh 的自动续期流程。

# 重载 Nginx
sudo systemctl reload nginx

# 手动模拟一次续期,验证所有配置是否正确 (不会真的续期)
acme.sh --renew -d example.com --force

6. 查看当前定时任务

你可以用以下命令查看具体的 cron 配置:

crontab -l | grep acme

通常你会看到类似这样的输出:

# 每天凌晨 0 点检测一次
0 0 * * * "/home/ubuntu/.acme.sh"/acme.sh --cron --home "/home/ubuntu/.acme.sh" > /dev/null

配置默认当证书剩余有效期 < 30 天 时,才会执行续期,如果需要修改触发条件,如证书剩余有效期 < 5 天触发,则可以通过一下命令修改:

# crontab -e进入编辑模式
crontab -e

# 每天凌晨 3 点检测一次,< 5天触发续期
0 3 * * * "/home/ubuntu/.acme.sh"/acme.sh --cron --home "/home/ubuntu/.acme.sh" --days 5 > /dev/null
# 保存退出即可

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

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

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

分享给朋友:
返回列表

上一篇:Linux中避免rm -rf 误删操作

没有最新的文章了...

“Ubuntu系统 用acme.sh自动签发由腾讯云托管域名的泛域名证书” 的相关文章

Linux上使用LNMP一键安装nginx

Linux上使用LNMP一键安装nginx

LNMP官网 安装LNMP稳定版nginxwget http://soft.vpser.net/lnmp/lnmp1.9.tar.gz -cO lnmp1.9.tar.gz && tar zxf lnmp1.9.tar.gz && cd lnmp1.9 &&...

Linux操作系统安装docker和docker-compose

Linux操作系统安装docker和docker-compose

要想使用Docker不管是在Windows操作系统还是在Linux操作系统上搭建服务,首先服务器上要有支撑的Docker服务,今天我们来聊聊Linux操作系统安装Docker的步骤。 安装Docker方式的有好几种,比如使用yum源安装Docker、离线安装Docker等,其中离线安装又可以使用w...

介绍几个 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安装safe-rm防止误删文件或目录

在Linux系统中安装safe-rm工具可以有效地防止误删除重要文件或目录。以下是安装safe-rm的步骤: 1、下载safe-rm:使用wget命令从官方网站下载safe-rm的压缩包。例如,下载0.12版本的命令为: wget https://launchpad.net/safe-rm/tr...

CentOS上安装FirewallD

安装FirewallD:如果你的系统上还没有安装FirewallD,你可以使用以下命令来安装它: bash sudo yum install firewalld -y启动FirewallD服务:使用以下命令来启动FirewallD服务: bash sudo systemctl start f...