群晖 在 Ubuntu/Debian 上申请3个月证书,手动导入群晖


第一步:在 Ubuntu 上安装 acme.sh

  1. 登录到你的 Ubuntu/Debian 服务器。

  2. 执行安装命令(只需安装一次):

    Bash

    curl https://get.acme.sh | sh
    
  3. 使配置立即生效,或者直接重新登录 SSH 会话:

    Bash

    source ~/.bashrc
    
  4. 注册 ACME 账户邮箱(必填,用于接收过期提醒)。把下面的邮箱换成你自己的:

    Bash

    ~/.acme.sh/acme.sh --register-account -m [email protected]
    
  5. 更改默认的 CA(证书颁发机构)为 Let's Encrypt(这一步很关键,避免再次用到默认的 ZeroSSL):

    Bash

    ~/.acme.sh/acme.sh --set-default-ca --server letsencrypt
    

第二步:配置 DNS API 凭据

为了通过 DNS 验证自动化管理 SSL 证书(例如使用 acme.shCertbot),你需要获取 Cloudflare 的 API 令牌(Token)并将其配置到服务器环境中。

处于安全考虑,强烈推荐创建受限的 API 令牌(API Token),而不是使用权限过大的全局 API 密钥(Global API Key)。

1. 获取 Cloudflare 凭据

1.登录并进入 API 令牌管理:

登录 Cloudflare 仪表盘,点击右上角的个人头像,选择 我的个人资料 (My Profile)。然后在左侧菜单中点击 API 令牌 (API Tokens)

2.使用 DNS 模板创建令牌:

点击 创建令牌 (Create Token) 按钮。在提供的模板列表中,找到 编辑区域 DNS (Edit zone DNS),点击其右侧的 使用模板 (Use template)

3.精确配置令牌权限:

在配置页面中,按照以下标准进行设置:

  • 权限 (Permissions): 区域 (Zone) - DNS - 编辑 (Edit)

  • 区域资源 (Zone Resources): 包括 (Include) - 特定区域 (Specific zone) - [选择你正在解析的域名]

4.生成并保存 API Token:

点击底部的 继续以显示摘要 (Continue to summary),确认权限范围无误后,点击 创建令牌 (Create Token)

注意:屏幕上会显示一段 Token 字符串。请立即将其复制并妥善保存到记事本中,关闭该页面后将无法再次查看此 Token。

5.获取账户 ID (Account ID):

返回 Cloudflare 的主仪表盘,点击进入你的域名总览页面。向下滑动,在页面右下角的 API 模块中,找到并复制你的 账户 ID (Account ID)

2. 在服务器配置环境变量

获取到这两个核心凭据后,需要将它们声明为服务器的环境变量,以便自动化工具读取。连接到你的 Linux 终端,执行以下命令:

Bash

# 替换为你的实际 API Token
export CF_Token="xxxx_xxxxxxxxxxxxxxxxxxxxxxxxx"

# 替换为你的实际账户 ID
export CF_Account_ID="xxxxxxxxxxxxxxxxxxxxxxxxxxxx"

3. 执行 DNS 验证验证 (以 acme.sh 为例)

凭据配置完成后,你的自动化工具就可以通过调用 Cloudflare 的 API 自动添加和删除 TXT 记录了。如果你使用的是主流的 acme.sh,直接运行签发命令即可(此方式完美支持泛域名证书):

Bash

acme.sh --issue --dns dns_cf -d “*.yourdomain.com”  (删除冒号)

1. 导出证书文件

在你的 Ubuntu 终端里,直接执行以下命令:

Bash

# 创建一个专门存放待导出证书的文件夹(这里以用户主目录下的 syno_certs 为例)
mkdir -p ~/syno_certs

# 将证书和私钥提取到刚才创建的目录中(复制下面的所有命令,不要分段)
~/.acme.sh/acme.sh --install-cert -d h.itony.cc \
--key-file       ~/syno_certs/h.itony.cc.key  \
--fullchain-file ~/syno_certs/fullchain.cer

执行完毕后,你的 ~/syno_certs 文件夹下就会有两个文件:

  • h.itony.cc.key(这是私钥)

  • fullchain.cer(这是包含完整证书链的公钥)

  • 下载私钥和公钥,从root文件夹下 复制到home文件下下。
  • 2. 下载文件到你的本地电脑,cp -r /root/syno_certs /home/ubuntu/

3. 在群晖 DSM 中导入

1.打开群晖证书设置:

登录你的群晖 DSM 网页后台,打开 控制面板 > 安全性 > 证书

2.新增或替换证书:

点击 新增。如果之前已经有针对这个域名的旧证书,系统会问你是添加还是替换,选择替换现有证书,或者添加新证书并选 导入证书

3.上传文件:

在弹出的导入窗口中:

  • 私钥 (Private Key): 点击浏览,选择刚才下载的 h.itony.cc.key

  • 证书 (Certificate): 点击浏览,选择刚才下载的 fullchain.cer

  • 中间证书 (Intermediate Certificate): 留空不用管(因为 fullchain 已经包含了)。

  • 三个月后证书快过期时,你的 Ubuntu 服务器实际上已经在后台自动续签好了最新的证书。到时候你只需要重新执行一遍第 1 步和第 2 步,把新文件拿出来去群晖里点一下“替换”就行了。

声明:iTony's Blog|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 群晖 在 Ubuntu/Debian 上申请3个月证书,手动导入群晖


Carpe Diem and Do what I like