群辉自动续签SSL证书,实现https安全访问
安装Docker容器
在Docker注册表里搜索neilpang/acme.sh
新建容器,容器名为acme,在共享目录创建acme文件夹,在存储空间中映射docker/acme文件夹到/acme.sh
执行命令输入”daemon”(选择常驻,如果不写的话,容器一般执行完一次之后就会停止了)
添加环境变量1
2
3
4
5
6
7
8
9
10Ali_Key #阿里云的key
Ali_Secret #阿里secret
SYNO_Username #群晖登录用户名
SYNO_Password #群晖后台登录密码
SYNO_Certificate #群晖证书名 填写需要替换的证书名 如果是默认群晖证书填"" 或synology,自定义用想要的名字
SYNO_Create #域名证书创建,填要创建证书的域名
SYNO_Port #群晖后台登录端口号
SYNO_HOSTNAME #群辉 NAS 的域名或 IP 地址不带端口
SYNO_PORT #群辉管理界面的端口,默认情况下是 `5000`(HTTP)或 `5001`(HTTPS)。
SYNO_SCHEME #群辉使用的协议,通常是 `http` 或 `https`。
其余内容可保持默认
创建脚本
新建可执行脚本并保存为”AutoCert.sh”,存放到创建的acme文件夹里。内容如下
无证书1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25#!/bin/bash
# 域名
DOMAIN='*.example.com'
# # DNS类型,dns_ali dns_dp dns_gd dns_aws dns_linode根据域名服务商而定,CloudFlare就是dns_cf
DNS='dns_ali'
# DNS API 生效等待时间 值(单位:秒),一般120即可
# 某些域名服务商的API生效时间较大,需要将这个值加大(比如900)
DNS_SLEEP=120
# 证书服务商,letsencrypt
CERT_SERVER='letsencrypt'
generateCrtCommand="acme.sh --force --log --issue --server ${CERT_SERVER} --dns ${DNS} --dnssleep ${DNS_SLEEP} -d "${DOMAIN}""
installCrtCommand="acme.sh --deploy -d "${DOMAIN}" --deploy-hook synology_dsm"
docker exec acme $generateCrtCommand
docker exec acme $installCrtCommand
已有证书1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51#!/bin/bash
# 域名
DOMAIN='*.example.com'
# DNS类型,dns_ali dns_dp dns_gd dns_aws dns_linode根据域名服务商而定
DNS='dns_ali'
# DNS API 生效等待时间 值(单位:秒),一般120即可
DNS_SLEEP=120
# 证书服务商,letsencrypt
CERT_SERVER='letsencrypt'
# 检查现有证书是否存在且未过期
if docker exec acme acme.sh --list | grep -q "$DOMAIN"; then
echo "Certificate for $DOMAIN already exists and is valid."
else
echo "No valid certificate found. Requesting a new certificate."
generateCrtCommand="acme.sh --log --issue --server ${CERT_SERVER} --dns ${DNS} --dnssleep ${DNS_SLEEP} -d "${DOMAIN}""
docker exec acme $generateCrtCommand
fi
# 部署证书
installCrtCommand="acme.sh --deploy -d "${DOMAIN}" --deploy-hook synology_dsm"
docker exec acme $installCrtCommand
设置计划
自定义脚本为1
bash /volume1/docker/acme/AutoCert.sh >>/volume1/docker/acme/log.txt 2>&1
- 感谢你赐予我前进的力量