网站首页 > 教程文章 正文
黑裙DS918+ V6.23养老,HTTPS证书以前都是腾讯云、阿里云申请的免费一年的。这最近免费证书都改成了90天了,手动换太麻烦了。 只能考虑自动续签了。
acme.sh的部署教程很多,并不难,但实际部署在老版本群辉里却发现了几个大坑,用了大半天时间才一个个解决。
先说“坑”,如果有朋友凑巧搜到这个贴,可以省点时间。
1、acme.sh容器版本必须用3.0.6版本,不然 和群辉6.x不兼容,无法自动登录群辉更新证书。
脚本执行报错:
[Wed Jul 10 06:38:54 UTC 2024] Logging into localhost:5000...
[Wed Jul 10 06:38:54 UTC 2024] Failed to authenticate with error: 102.
[Wed Jul 10 06:38:54 UTC 2024] Error deploy for domain:xxxx.com
[Wed Jul 10 06:38:54 UTC 2024] Deploy error.
参考这里:
https://github.com/acmesh-official/acme.sh/issues/4721
2、必须加--keylength 2048生成rsa证书,如果不加默认生成ECC证书,老版本群辉不支持。
脚本执行报错:
[Wed Jul 10 07:31:55 UTC 2024] The domain 'xbaodi.com' seems to have a ECC cert already, lets use ecc cert.
[Wed Jul 10 07:31:55 UTC 2024] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 7
解决方法是 命令增加参数 --keylength 2048, 强制生成RSA证书
3、SYNO_Hostname="192.168.33.3" 这里必须用IP,不然localhost不能http:5050登录群辉。
如果群辉开了登录跳转https,而如果没有证书或者证书到期,这时候用localhost不管登录时SYNO_Scheme="http"还是"https"都无法登录,这时候只能登录ip,并且端口写http端口号。
我简单的说一下步骤,
1、在docker注册表搜索acme,双击neilpan/acme.sh选择版本3.0.6
2、创建容器仅需选择
①容器名称 acme ②自动重启 ③ 路径映射 /dcoker/acme.sh /acme.sh ④执行命令 daemon
3、建立执行脚本文件,比如我放到了这里
/volume1/common/bin/acme_ca.sh
#!/bin/bash
#你的域名
DOMAIN='xxxx.com'
#证书供应商
CERT_SERVER='letsencrypt'
#DNS供应商 可选 dns_dp(腾讯云) dns_ali(阿里云) dns_cf 其他可查https://github.com/acmesh-official/acme.sh/wiki/dnsapi
DNS="dns_dp"
# DNS API 生效等待时间 值(单位:秒),一般120即可
# 某些域名服务商的API生效时间较大,需要将这个值加大(比如900)
DNS_SLEEP=120
#群晖账号密码
SYNO_Username='xxxxx'
SYNO_Password='xxxxx'
#如果开启了双重验证请在浏览器登录时选中保存此设备,然后从COOKIE中获取did cookie
#SYNO_Device_ID=''
#以下群晖配置非必要不要更改
SYNO_Hostname="192.168.33.3" # Specify if not using on localhost
SYNO_Scheme="http"
SYNO_Port="5000"
#要添加的证书的名字,空字符串("")的话就是替代默认证书,一般建议使用空字符串,除非你有多个证书
SYNO_Certificate='xxxx.com'
SYNO_Create='xxxx.com'
#以下三选一
#DNSPOD.CN 腾讯云
DP_Id=''
DP_Key=''
#阿里云
Ali_Key=''
Ali_Secret=''
#CF
CF_Key=''
CF_Email=''
# 环境变量设置
case $DNS in
"dns_dp")
a="DP_Id=${DP_Id}"
b="DP_Key=${DP_Key}"
;;
"dns_ali")
a="Ali_Key=${Ali_Key}"
b="Ali_Secret=${Ali_Secret}"
;;
"dns_cf")
a="CF_Key=${CF_Key}"
b="CF_Email=${CF_Email}"
;;
*)
echo "Unsupported DNS provider: ${DNS}"
exit 1
;;
esac
c="SYNO_Username=${SYNO_Username}"
d="SYNO_Password=${SYNO_Password}"
f="SYNO_Hostname=${SYNO_Hostname}"
g="SYNO_Scheme=${SYNO_Scheme}"
h="SYNO_Port=${SYNO_Port}"
i="SYNO_Certificate=${SYNO_Certificate}"
k="SYNO_Create=${SYNO_Create}"
# Docker 容器检查
container_status=$(docker inspect -f '{{.State.Running}}' acme 2>/dev/null)
if [ "$container_status" != "true" ]; then
echo "Error: No such container: acme"
# docker ps -a
exit 1
fi
# 加 参数 --force 可以覆盖已经生成的密匙
# 生成证书
docker exec -e "${a}" -e "${b}" acme acme.sh --log --server "${CERT_SERVER}" --issue -d "${DOMAIN}" -d "*.${DOMAIN}" --dns "${DNS}" --dnssleep "${DNS_SLEEP}" --keylength 2048
# 部署证书
docker exec -e "${c}" -e "${d}" -e "${f}" -e "${g}" -e "${h}" -e "${i}" -e "${k}" acme acme.sh --issue -d "${DOMAIN}" -d "*.${DOMAIN}" --dns "${DNS}" --deploy --deploy-hook synology_dsm
4、添加计划任务
新增一个计划任务脚本,任务创建后点右键,手动运行一次,即可生成并更新证书。
bash /volume1/comm/bin/acme_ca.sh >> /volume1/comm/log/acme_log.txt 2>&1
猜你喜欢
- 2025-06-15 申请免费域名SSL,为NAS和个人网站加密
- 2025-06-15 Cloudflare配置CDN+SSL+代理(cloudflare国内代理)
- 2025-06-15 Halo博客搭建(halo博客搭建失败怎么办)
- 2025-06-15 我用三年踩坑才摸懂建站这事儿独立站新手别闭眼冲
- 2025-06-15 30 分钟搞定 Docker 安装与 Nginx 部署,轻松搭建高效 Web 服务
- 2025-06-15 免费通配符ssl证书的申请指南——从申请到启动https
- 2025-06-15 免费证书Let’s Encrypt的申请和使用
- 2025-06-15 【AI+智造】在阿里云Ubuntu 24.04上部署DeepSeek R1 14B的完整方案
- 2025-06-15 企业网站维护教程:设置SSL证书到期提醒
- 2025-06-15 httpsok-v1.17.0-SSL证书自动续签
- 最近发表
-
- 第十三章:Python在Web开发中的应用
- python mysql 连接池(django mysql连接池)
- Python | SQL库:MySQL(python连接mysql数据库环境搭建)
- 使用Python来实现MySQL与PostgerSQL之间的数据实时同步?
- 申请免费域名SSL,为NAS和个人网站加密
- Cloudflare配置CDN+SSL+代理(cloudflare国内代理)
- Halo博客搭建(halo博客搭建失败怎么办)
- 我用三年踩坑才摸懂建站这事儿独立站新手别闭眼冲
- 30 分钟搞定 Docker 安装与 Nginx 部署,轻松搭建高效 Web 服务
- 免费通配符ssl证书的申请指南——从申请到启动https
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- mybatis plus page (35)
- vue @scroll (38)
- 堆栈区别 (33)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)
- redis aof rdb 区别 (33)
- 302跳转 (33)
- http method (35)
- js array splice (33)