acme自动申请ssl,自动续期
由于用的是dynv6域名,一直使用swag申请ssl证书,最近升级swag,申请的证书变成ecc,黑群6.23不支持ecc,只支持rsa旧版(7.0以上支持ecc),所以又认真向度娘请教,结合各方面大神经验,终于实现全自动化更新ssl并续期
docker下载neilpang/acme.sh
docker文件夹添加acme目录,映射 /acme.sh
网络选用 Docker Host
环境变量:
DYNV6_TOKEN:dynv6 HTTP Tokens
SYNO_Port : 群晖端口
SYNO_Username : 登录群晖用户名
SYNO_Password : 登录群晖密码
SYNO_Certificate :要添加的证书的名字,空字符串 "" 为替换默认证书
环境变量设置完成后,在命令中输入”daemon“,应用docker
在本地新建文档,复制以下内容,存盘为cert-up.sh
#!/bin/bash
# 域名
DOMAIN='xxx.com'
# # DNS类型,dns_ali dns_dp dns_gd dns_aws dns_linode根据域名服务商而定
DNS='dns_dynv6'
# DNS API 生效等待时间 值(单位:秒),一般120即可
# 某些域名服务商的API生效时间较大,需要将这个值加大(比如900)
DNS_SLEEP=120
# 证书服务商,zerossl 和 letsencrypt,使用zerossl需要注册
CERT_SERVER='letsencrypt'
generateCrtCommand="acme.sh --force --log --issue --server ${CERT_SERVER} --dns ${DNS} --dnssleep ${DNS_SLEEP} -d "${DOMAIN}" -d "*.${DOMAIN}""
installCrtCommand="acme.sh --deploy -d "${DOMAIN}" -d "*.${DOMAIN}" --deploy-hook synology_dsm"
docker exec acme $generateCrtCommand
docker exec acme $installCrtCommand
上传cert-up.sh到黑群,其中红字需要修改为自己的内容【自己的域名,dns供应商,acme的docker名字】
存盘并右键属性查看cert-up.sh的位置,记录备用。
计划任务新添任务,用户root,区间为3个月,用户定义的脚本中输入:
bash /volume1/docker/acme/cert-up.sh >>/volume1/docker/acme/log.txt 2>&1
log.txt 为运行日志,方便查看
确定后右键运行,如无意外,日志中可以查看过程
但是以上内容只是在黑群7.1.1成功,而且证书是ecc
以下是尝试手动申请ssl
在环境-执行命令里填入“daemon”,以常驻运行.
通过终端命令启动.输入sh确定
选择sh的终端,先执行更新
acme.sh --upgrade --auto-upgrade
输入命令申请泛域名证书
acme.sh --issue --server letsencrypt --keylength 4096 --dns dns_dynv6 -d xxx.com -d *.xxx.com
其中添加 --keylength 4096 命令,申请的证书就是rsa,适用黑群6.23
--server letsencrypt 则是强制使用Let's Encrypt证书
由于新版acme原默认服务提供商从Let's Encrypt变为ZeroSSL,所以首次执行时会失败,原因在于ZeroSSL作为服务提供商,需要在生成证书前,先关联ZeroSSL的注册邮箱
所以要先注册自己的邮箱
acme.sh --register -account -m xxx@xxx.com
然后就可以申请ZeroSSL证书
acme.sh --issue --dns dns_dynv6 -d *.xxx.com
以上内容可按实际需要更改为自己的。
#docker daemon 守护模式 下acme.sh容器会根据申请记录,每60天自动更新证书.
所以只要把cert-up.sh内容中
generateCrtCommand="acme.sh --force --log --issue --server ${CERT_SERVER} --dns ${DNS} --dnssleep ${DNS_SLEEP} -d "${DOMAIN}" -d "*.${DOMAIN}""
改为
generateCrtCommand="acme.sh --force --log --issue --server ${CERT_SERVER} --keylength 4096 --dns ${DNS} --dnssleep ${DNS_SLEEP} -d "${DOMAIN}" -d "*.${DOMAIN}""
其实就是添加 --keylength 4096 命令,使申请的ssl为rsa,适配黑群6.23
最终成功
ddns-go 配置 ddns(dynv6)
DNS服务商 选 Callback
URL类似这样:
http://dynv6.com/api/update?hostname=#{domain}&token=(Benutzername)&ipv6=#{ip}
#{domain}为变量, ddns-go会自动输出 Domains配置的域名(不用改)
(Benutzername)改为dynv6秘钥令牌,复制HTTP Tokens即可
#{ip}为变量, ddns-go会自动输出 VPS当前的IP地址.(不用改)
然后在ipv4或ipv6域名处输入自己的域名即可
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~



阿西八哥
校验提示文案
大妈影友
校验提示文案
三角形地球
校验提示文案
三角形地球
校验提示文案
大妈影友
校验提示文案
阿西八哥
校验提示文案