在数字安全日益重要的今天
为您的网络存储器(NAS)配置 HTTPS 证书是保护数据传输的关键一步。Synology NAS 用户可以通过 Let's Encrypt 免费获得 SSL 证书,但是默认的方法需要开放网络端口,这可能不是每个人都愿意做的。幸运的是,有一种替代方案:使用 DNS-01 验证和 acme.sh 脚本。这篇文章将指导您如何使用 acme.sh 为您的 Synology NAS 设置 HTTPS 证书,而无需开放额外的网络端口。
现有的一些介绍群晖配置免费Let's Encrypt证书的方法,要么是表达不清,要么是需要一些技术功底,对小白并不友好。M学院对官方文档重新整理一下,并且亲测有效,这是目前位置我们认为最好的方案也是唯一全部成功的方案。
准备工作
在开始之前,确保您有以下条件:
- 拥有一个域名,并且可以控制其 DNS 记录。
- 对您的 Synology NAS 有管理员权限。
- SSH 访问权限。
安装 acme.sh
首先,您需要在您的设备上安装 acme.sh。通过 SSH 登录到您的 NAS 并执行以下命令:
sudo su cd ~ wget https://github.com/acmesh-official/acme.sh/archive/master.tar.gz tar xvf master.tar.gz cd acme.sh-master/ ./acme.sh --install --nocron --home /usr/local/share/acme.sh --accountemail "email@gmail.com" source ~/.profile
配置 DNS
以 Cloudflare 为例,您需要设置两个环境变量,以便 acme.sh 能够设置 DNS 记录。如果您使用的是其他 DNS 提供商,查阅 acme.sh 的 DNS API 文档来找到正确的设置方法。
export CF_Key="MY_SECRET_KEY_SUCH_SECRET" export CF_Email="myemail@example.com"
创建证书
接下来,为您的域名创建证书:
cd /usr/local/share/acme.sh export CERT_DOMAIN="your-domain.tld" export CERT_DNS="dns_cf" ./acme.sh --issue --server letsencrypt --home . -d "$CERT_DOMAIN" --dns "$CERT_DNS"
部署证书
使用 Synology DSM deployhook 部署您的证书。这将替换默认的证书:
cd /usr/local/share/acme.sh export SYNO_Username='Admin_Username' export SYNO_Password='Admin_Password!123' export SYNO_Certificate="" ./acme.sh --deploy --home . -d "$CERT_DOMAIN" --deploy-hook synology_dsm
如果您的管理员账户启用了双因素验证,请确保获取 `SYNO_DID` 值并设置相应的环境变量。
配置证书自动续订
在 DSM 的“任务计划程序”中创建一个新任务,以便自动续订证书:
# 续订证书 /usr/local/share/acme.sh/acme.sh --cron --home /usr/local/share/acme.sh/
修复环境
如果您的 acme.sh 环境在 DSM 升级后损坏,您可以通过以下命令修复:
cd /usr/local/share/acme.sh ./acme.sh --force --upgrade --nocron --home /usr/local/share/acme.sh
或者,您可以手动添加以下内容到您的 `/root/.profile` 文件中:
. "/usr/local/share/acme.sh/acme.sh.env"
通过以上步骤,您可以轻松地为您的 Synology NAS 配置 HTTPS 证书,提高您的数据安全性。acme.sh 提供了一个灵活且强大的方式来管理 SSL 证书,而不需要在路由器上开放端口,为您的网络安全添加了一层额外的保护。
留言评论
暂无留言