如何使用CloudFlare DNS01 Challenge生成LetsEncrypt SSL证书并在Synology NAS上使用
磁盘站管理器v7 (DSM 7)是Synology NAS设备的操作系统。您可以从DSM 7 web界面为Synology NAS配置Let 's Encrypt SSL证书。默认情况下,Synology DSM 7使用HTTP-01挑战来验证域(您希望用于Synology NAS)的所有权,并为该域颁发SSL证书。但是HTTP-01的挑战是行不通的,除非你有一个公共IP地址,并且你的计算机可以从互联网访问。因此,如果您想在您的家庭网络或专用网络中使用Let 's Encrypt SSL证书,则必须使用DNS-01挑战。当使用DNS-01挑战时,Let 's Encrypt使用域的DNS服务器验证域的所有权。所以,它也适用于私人网络。遗憾的是,Synology DSM 7 web界面没有提供任何使用DNS-01挑战获取Let 's Encrypt SSL证书的方法。
幸运的是,“acme.sh”程序可以安装在Synology NAS上,并用于使用DNS-01挑战生成和更新Let 's Encrypt SSL证书。
在本文中,我们将向您展示以下内容:
- 如何在Synology NAS上安装“sh”
- 如何使用" acme.sh "为您在Synology NAS上使用的域名生成Let 's Encrypt SSL证书(通过DNS-01挑战)
- 如何在Synology NAS上安装“acme.sh”生成的Let 's Encrypt SSL证书
- 如何配置Synology NAS的DSM 7操作系统以使用生成的Let 's Encrypt SSL证书
- 如何配置Synology NAS以自动更新使用“acme.sh”生成的Let 's Encrypt SSL证书
注意:在本文中,我们将使用CloudFlare DNS服务器进行演示。您也可以使用acme.sh支持的其他DNS服务。你所要做的就是做必要的调整。
内容主题:
- 在Synology NAS上创建Certadmin用户
- 为LetsEncrypt DNS-01 Challenge配置CloudFlare DNS服务器
- 配置LetsEncrypt DNS-01 Challenge的其他DNS服务
- 通过SSH方式访问Synology NAS终端
- 正在Synology NAS上下载Acme.sh
- 在Synology NAS上安装Acme.sh
- 使用Acme.sh为您的Synology NAS生成Let 's Encrypt SSL证书
- 使用Acme.sh在Synology NAS上安装Let 's Encrypt SSL证书
- 在Synology NAS上设置让我们加密SSL证书为默认值
- 使用Acme.sh配置Synology NAS自动更新“让我们加密SSL证书”
- 结论
- 参考文献。
在Synology NAS上创建Certadmin用户
首先,您应该在Synology NAS上创建一个新的管理用户,以生成和续签Let 's Encrypt SSL证书。
要在Synology NAS上创建一个新的管理用户,请从DSM 7 web界面单击控制面板[1]>用户和组[2]。
点击“用户”选项卡中的“创建”。
输入“certadmin”作为用户名[1],用户的可选简短描述[2],用户登录密码[3],然后点击“下一步”[4]。
要创建管理员用户,从列表[1]中勾选“administrators”组,然后单击“Next”[2]。
点击“下一步”。
点击“下一步”。
点击“下一步”。
点击“下一步”。
点击“完成”。
现在应该在Synology NAS上创建了certadmin用户。
为Let 's Encrypt DNS-01挑战配置CloudFlare DNS服务器
要在Let 's Encrypt DNS-01挑战中使用CloudFlare DNS服务器,您需要生成CloudFlare DNS令牌。您可以从CloudFlare仪表板生成CloudFlare DNS服务器令牌。有关更多信息,请阅读本文。
为Let 's Encrypt DNS-01挑战配置其他DNS服务
“Acme.sh”支持其他DNS服务。如果你不想使用CloudFlare DNS,你可以使用任何一个“acme.sh”支持的DNS服务。对于不同的DNS服务,配置略有不同。有关更多信息,请查看“acme.sh”DNS API指南。
通过SSH方式访问Synology NAS终端
要在Synology NAS上安装“acme.sh”并生成和安装Let 's Encrypt SSL证书,您需要访问Synology NAS的终端。有关在Synology NAS上启用SSH访问和访问Synology NAS终端的更多信息,请阅读本文。
在Synology NAS上启用SSH访问后,在计算机上打开终端应用程序并运行以下命令:
$ SSH certadmin@
系统将要求您输入certadmin用户的登录密码。输入Synology NAS的certadmin用户的登录密码,然后按“”。您应该以certadmin用户登录到Synology NAS。
正在Synology NAS上下载Acme.sh
下载最新版本的“acme.sh”客户端。
$ wget -O /tmp/acme.sh.zip https://github.com/acmesh-official/acme.sh/archive/master.zip
最新版本的“acme.sh”客户端归档文件“acme.sh.zip”应该在Synology NAS的“/tmp”目录下下载。
在Synology NAS上安装Acme.sh
解压Synology NAS的“/usr/local/share”目录下的“/tmp/acme.sh.zip”文件,执行如下命令,输入certadmin用户的登录密码,并按提示输入密码。“/tmp/acme.sh.zip”压缩包解压到“/usr/local/share/acme.sh-master”目录下。
$ sudo 7z x -o /usr/local/share /tmp/acme.sh.zip
为简单起见,使用以下命令将“acme.sh-master”目录重命名为“acme.sh”。
$ sudo mv -v /usr/local/share/acme.sh-master /usr/local/share/acme.sh
使用实例设置“/usr/local/share/acme.sh”目录及其内容为certadmin用户所有。
$ sudo chown -Rfv certadmin /usr/local/share/acme.sh
使用Acme.sh为您的Synology NAS生成Let 's Encrypt SSL证书
要为您在Synology NAS上使用的域名生成Let 's Encrypt SSL证书,请导航到“/usr/local/share/acme.sh”目录,如下所示:
$ CD /usr/local/share/acme.sh
现在,您需要导出所需的DNS API令牌环境变量。我们使用CloudFlare DNS管理我们在Synology NAS上使用的域名。所以,对我们来说,我们所要做的就是用CloudFlare DNS API令牌的值导出CF_Token环境变量。如果您正在使用其他DNS服务,请检查“acme.sh”DNS API文档中需要导出的变量,以便“acme.sh”与DNS服务一起工作。
$ export CF_Token=""
此外,导出所需的Synology环境变量,以便“acme.sh”可以在Synology NAS上安装生成的SSL证书。
$ export SYNO_Username="certadmin"
$ export SYNO_Password="Your_certadmin_login_Password"
$ export SYNO_Certificate="让我们加密"
$ export SYNO_Create=1
使用CloudFlare DNS插件(-dns dns_cf)为“*.nodekite.com”(通配符)域名生成Let 's Encrypt SSL证书,执行如下命令:
$ ./acme.sh——server letsencrypt——issue——dns dns_cf——home $PWD -d "*.nodekite.com"
注意:如果您正在使用其他DNS服务,您需要相应地更改上述命令中的DNS插件(-dns)。有关更多信息,请查看" acme.sh " DNS API文档。
正在生成Let 's Encrypt SSL证书。这需要一段时间才能完成。
此时,应该生成Let 's Encrypt SSL证书。
使用Acme.sh在Synology NAS上安装Let 's Encrypt SSL证书
一旦为Synology NAS的域名(在本例中为*.nodekite.com)生成Let 's Encrypt SSL证书,您可以使用以下命令将其安装在Synology NAS上:
$ ./acme.sh -d "*.nodekite.com"——deploy——deploy-hook synology_dsm——home $PWD
如果您为certadmin用户启用了双因素身份验证,您将收到一个OTP代码。你必须输入联机码,然后按。
如果您没有为certadmin用户启用双因素身份验证,请将其保留为空并按下。
出版社。
生成的Let 's Encrypt SSL证书应该安装在Synology NAS上。
一旦在Synology NAS上安装了Let 's Encrypt SSL证书,它将显示在Synology NAS的DSM 7 web界面的控制面板>安全>证书部分。
在Synology NAS上设置让我们加密SSL证书为默认值
要管理Synology NAS的SSL证书,请从Synology NAS的DSM 7 web界面导航到控制面板>安全>证书部分。
要将新安装的Let 's Encrypt SSL证书设置为默认值,以便Synology NAS上新安装的web服务将默认使用它,请选择Let 's Encrypt SSL证书并单击“操作>编辑”。
勾选“设置为默认证书”[1],点击“确定”[2]。
应该将Let 's Encrypt SSL证书设置为Synology NAS的默认证书。
要配置Synology NAS的现有web服务以使用Let 's Encrypt SSL证书,请单击“设置”。
如您所见,所有web服务都在使用Synology自签名SSL证书。
要更改web服务的SSL证书,请单击右侧相应的下拉菜单。
然后,从下拉菜单中选择要用于web服务的Let 's Encrypt SSL证书。
同样,为Synology NAS的所有已安装的web服务选择Let 's Encrypt SSL证书,然后单击“OK”。
点击“是”。
这些变化正在被应用。这需要几秒钟才能完成。
一旦将Let 's Encrypt SSL证书应用于Synology NAS的所有web服务,刷新网页,您的DSM 7 web界面应该使用Let 's Encrypt SSL证书。
使用Acme.sh配置Synology NAS自动更新Let 's Encrypt SSL证书
要将Synology NAS配置为自动更新Let 's Encrypt SSL证书,请从DSM 7 web界面导航到控制面板>任务调度程序。
在任务计划程序中,单击“创建>计划任务>用户定义脚本”。
在“常规”选项卡中,在“任务”部分[1]中输入“更新SSL证书”,并从“用户”下拉菜单[2]中选择“certadmin”。
在“Schedule”选项卡中,选择“Run on next date”[1],并在“Repeat”下拉菜单中选择“Repeat monthly”[2]。
导航到“任务设置”选项卡,在“用户自定义脚本”部分[1]中输入以下命令,然后点击“确定”[2]。
-renew -server letsencrypt -d " *.nodekite.com " -home /usr/local/share/acme.sh
应该创建一个新任务。“更新SSL证书”任务将每月运行一次,并确保让我们加密SSL证书在到期之前更新。
结论
在本文中,我们向您展示了如何安装和使用“ACME .sh”ACME客户机,以便通过Synology NAS上的DNS-01挑战生成Let 's Encrypt SSL证书。我们还向您展示了如何在Synology NAS上安装生成的Let’s Encrypt SSL证书,并配置Synology NAS的web服务以使用它。最后,我们向您展示了如何在Synology NAS上配置一个计划任务,以便在Let’s Encrypt SSL证书到期之前自动更新它。
引用:
- 与“让加密”和“DNS挑战”的协同DSM 7
- 使用DNS-01挑战自动更新Synology NAS上的加密证书
- acmesh-official/ ACME .sh:一个纯Unix shell脚本,实现ACME客户端协议