群晖自动续签证书

发布于:2025-06-21 ⋅ 阅读:(17) ⋅ 点赞:(0)

1、使用docker安装acme.sh
在这里插入图片描述
选择创建的目录
在这里插入图片描述
创建docker-compose文件
在这里插入图片描述

内容如下

services:
  acme-sh:
    image: docker.1ms.run/neilpang/acme.sh
    container_name: acme.sh
    volumes:
      - /volume1/docker/acme:/acme.sh
    network_mode: host
    command: daemon
    restart: always
    environment:
      - Ali_Key=FERTEhttrddbVmAYn6o94rtaraJUU
      - Ali_Secret=GDERIUK87RTRVFD567HG34GBF3SDVCX5

使用root权限执行shell

sudo -i

进入容器里面申请证书

docker exec -it acme.sh /bin/sh

注册账户

acme.sh --register-account -m your@email.com

申请证书

acme.sh --issue --dns dns_ali -d test.xxx.top

申请成功后将申请的证书上传到群晖后台,群晖会自动创建证书文件夹
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
添加成功后就会在,/usr/syno/etc/certificate/_archive/目录下增加了一个文件夹
上传前是这样/usr/syno/etc/certificate/_archive/文件夹是这样
在这里插入图片描述
上传后就会多一个文件夹
在这里插入图片描述
在这里插入图片描述
然后我就可以用脚本把证书复制到该文件夹里,脚本内容如下

#!/bin/sh
set -e  # 出错时立即退出

#定义变量
DOMAIN="test.xxx.top"
CERT_DIR="/volume1/docker/acme/${DOMAIN}_ecc"
SYSTEM_CERT_DIR="/usr/syno/etc/certificate/system/default"
ARCHIVE_CERT_DIR="/usr/syno/etc/certificate/_archive/yptcQK"
LOG_FILE="/volume1/docker/acme/renew.log"

#日志记录
echo "$(date): Certificate update started" >> "$LOG_FILE"

#检查容器是否运行
if ! docker ps -q -f name=acme.sh | grep -q .; then
  echo "$(date): Error: acme.sh container is not running" >> "$LOG_FILE"
  exit 1
fi

#检查证书文件是否存在
[ -f "$CERT_DIR/fullchain.cer" ] || {
  echo "$(date): Error: Certificate files not found" >> "$LOG_FILE"
  exit 1
}

#复制证书到 Synology 系统证书目录
cp -f "$CERT_DIR/$DOMAIN.cer" "$SYSTEM_CERT_DIR/cert.pem"
cp -f "$CERT_DIR/$DOMAIN.key" "$SYSTEM_CERT_DIR/privkey.pem"
cp -f "$CERT_DIR/fullchain.cer" "$SYSTEM_CERT_DIR/fullchain.pem"

#复制证书到归档目录
cp -f "$CERT_DIR/$DOMAIN.cer" "$ARCHIVE_CERT_DIR/cert.pem"
cp -f "$CERT_DIR/$DOMAIN.key" "$ARCHIVE_CERT_DIR/privkey.pem"
cp -f "$CERT_DIR/fullchain.cer" "$ARCHIVE_CERT_DIR/fullchain.pem"

echo "$(date): Certificate update completed successfully" >> "$LOG_FILE"

设置计划任务
选择root用户
在这里插入图片描述
每月执行一次
在这里插入图片描述
添加脚本

bash /volume1/docker/acme/renew_cert.sh

在这里插入图片描述

  • 群晖https端口是5001

网站公告

今日签到

点亮在社区的每一天
去签到