侧边栏壁纸
  • 累计撰写 15 篇文章
  • 累计创建 11 个标签
  • 累计收到 0 条评论
标签搜索

目 录CONTENT

文章目录

使用 acme.sh 申请自用的泛域名证书(域名解析使用dnspod)

EamonZzz
2023-05-29 / 0 评论 / 0 点赞 / 1,502 阅读 / 735 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2023-05-29,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

准备工作

安装 acme.sh

acme.sh 地址:acme.sh

根据网站说明的提示,执行如下命令安装

# 将邮箱修改为自己的邮箱即可
curl https://get.acme.sh | sh -s email=my@example.com

最终程序会将 acme 安装在home目录下

~/.acme.sh/

创建 DNSPod 密钥

  1. 进入网址 DNSPod.cn,登陆后,点击头像,选择 “安全设置
    image

  2. 依次进入:“API 密钥” - “DNSPod Token” - “创建密钥”
    image-1685369506079

  3. 在创建密钥界面,填入名称image-1685369665163

  4. 点击 确定,并使用微信配合进行认证即可

  5. 得到如下图所示的密钥,同时拿小本本记录号 ID 和 Tokenimage-1685372837661

创建账户文件

在指定位置创建 account.conf 文件,或其他名称都可以,主要是为了记录 DNSPod 的 ID 和 Token 信息

# 这里直接放到 .acme.sh 的目录下
vim ~/.acme.sh/account.conf

将如下内容进行修改并填入:

# 按键盘 i 进入编辑模式
# 将如下信息修改后粘贴
export DP_Id="上个步骤中生成的 ID"
export DP_Key="上个步骤中生成的 Token"
# 开启自动升级
AUTO_UPGRADE='1'

签发证书

执行如下命令,签发证书

# 通过 accountconf 指定账户文件,也可以不通过此方式来做,可通过 export 的方式实现
# -d 指定证书中需要包含的域名信息
# -k 指定密钥类型,这里使用了 ECDSA 算法,P-384 类型的密钥
# --debug 是为了打印详细日志,方便出错时排查
acme.sh --issue --accountconf ~/.acme.sh/account.conf --server letsencrypt --dns dns_dp -d eamonzhang.com -d *.eamonzhang.com -k ec-384 --debug

成功执行时,会看到类似如图的日志image-1685370959788

在 .acme.sh 目录下会出现类似 eamonzhang.com_ecc 的文件夹,里面就包含了我们需要的证书、私钥以及CA证书等文件

安装和使用

证书签发后,可通过下方的命令快速安装到对应位置,我这里以 nginx 为例,安装到 /etc/ngtinx/ssl/eamonzhang.com 目录下,后续配置 nginx 时,可直接使用该位置的证书

# --reloadcmd 指定安装后强制更新 nginx
acme.sh --install-cert -d eamonzhang.com --ecc --key-file /etc/nginx/ssl/eamonzhang.com/eamonzhang.com.key  --fullchain-file /etc/nginx/ssl/eamonzhang.com/fullchain.cer --reloadcmd "service nginx force-reload"

后续更新

可通过添加定时任务,在证书快到期时自动更新

# 执行该命令,进入定时任务编辑界面
crontab -e
# 按 i 在新行中粘贴如下代码,最后保存即可
56 * * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

其他

移除不需要更新的活过时的站点证书:

# --ecc 指定删除 ecc 密钥对的记录,默认会删除 RSA 密钥对的证书
acme.sh --remove -d eamonzzz.com --ecc
0

评论区