在群晖中安装acme并申请SSL同时设置自动续期
前言
最近一直在折腾家里的服务器,现在 ipv6 已经普及了,很多宽带也有 IPV6 公网地址了,于是就可以告别内网穿透,跑满家里的 100M 上传带宽了。群晖自带的域名在每次重启之后会有很长一段时间才能够解析到公网 IP,所以换用自己的域名。
设备
- 群晖 DS218+,ds7.1
- 需要自备域名且最好托管到 DNS 服务器上(推荐 Cloudflare,免费好用且安全)
- docker 安装 DDNS 将域名解析到公网
开始安装
在群晖中打开 ssh 连接功能
使用 ssh 连接到群晖 并需要使用 root 用户登录或者获取 root 权限
安装 acme.sh
1
2
3curl https://get.acme.sh | sh -s [email protected] --force
~~curl https://get.acme.sh | sh~~注意:如果不使用 email 的命令,群晖默认会报莫名其妙的错误,原因不明,个人测试发现必须要使用 email 参数才能正常安装 acme.sh
导入 cloudflare 的 API 密钥
1
2export CF_Key="your_cloudflare_api_key"
export CF_Email="your_cloudflare_email"这里以 Cloudflare 为例,其他 DNS 服务商请参考 acme.sh 的文档
申请 SSL 证书
1
acme.sh --issue --dns dns_cf -d yourdomain.com -d www.yourdomain.com
注意:这里的 yourdomain.com 和www.yourdomain.com需要替换为你自己的域名
安装 SSL 证书(需要更新到群晖中)
1
2
3
4acme.sh --install-cert -d yourdomain.com \
--key-file /usr/local/etc/nginx/ssl/yourdomain.com.key \
--fullchain-file /usr/local/etc/nginx/ssl/yourdomain.com.cer \
--reloadcmd "/root/.acme.sh/acme.sh --deploy --deploy-hook synology_dsm --domain yourdomain.com"注意:这里的路径需要根据实际群晖环境进行调整,
设置自动续期
我这里手动在 DSM 中创建计划任务,命令如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15# 设置 acme.sh 路径
ACME_SH="/root/.acme.sh/acme.sh"
# 设置域名
DOMAIN="yourdomain.com"
# 设置证书安装路径
CERT_PATH="path/to/your/certificates"
# 这里的路径需要根据实际群晖环境进行调整
# 开始续期证书(如果不需要续期会自动跳过)
"$ACME_SH" --renew -d "$DOMAIN" --ecc \
--key-file "$CERT_PATH/$DOMAIN.key" \
--fullchain-file "$CERT_PATH/$DOMAIN.fullchain.pem" \
--reloadcmd "\"$ACME_SH\" --deploy --deploy-hook synology_dsm --domain $DOMAIN"注意:这里的路径需要根据实际群晖环境进行调整,
配置完成之后可以在 群晖中>安全性>证书中查看到新申请的证书。
设置好计划任务后,就可以愉快的使用自己的域名且有 SSL 证书了。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Owen's Blog!
评论