欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 文化 > 使用ACME给动态域名下的Synology NAS免费申请SSL证书(无需开放80/443端口)

使用ACME给动态域名下的Synology NAS免费申请SSL证书(无需开放80/443端口)

2025/4/26 8:59:47 来源:https://blog.csdn.net/A15216110998/article/details/147518559  浏览:    关键词:使用ACME给动态域名下的Synology NAS免费申请SSL证书(无需开放80/443端口)

如何在Synology NAS上免费申请SSL证书(无需开放80/443端口)

前言:为什么需要SSL证书?

在当今互联网环境中,数据安全至关重要。SSL证书(现多称为TLS证书)能够:

  1. 加密客户端与服务器之间的通信
  2. 验证网站真实性,防止中间人攻击
  3. 提升搜索引擎排名(Google明确表示HTTPS是排名因素之一)
  4. 避免浏览器显示"不安全"警告,打开麻烦

一、准备工作

(阿里、腾讯那些厂商,SSL证书都是收费的,还是按年。大冤种啊。。。)

1.1 硬件和网络要求

  • 一台运行DSM 6.0或更高版本的Synology NAS
  • 稳定的网络连接(建议有线连接)
  • 建议NAS配置静态IP地址

1.2 软件准备

  • 启用NAS的SSH服务:
    1. 控制面板 > 终端机和SNMP
    2. 勾选"启用SSH服务"
    3. 建议修改默认端口(22改为其他端口如2222)

1.3 域名准备

  • 已注册的域名
  • 域名解析权限
  • 建议提前将域名解析指向NAS的IP地址(A记录)

二、安装acme.sh

随便怎么安装,下载包进行安装即可。

ssh admin@your-nas-ip -p 2222
sudo su -
synopkg update
synopkg install bash curl tar
mkdir -p /usr/local/share/acme.sh
cd /usr/local/share
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 "your@email.com"
source ~/.profile

三、DNS API配置

Cloudflare配置示例(也可使用aliyun,查阅acme.sh官方)

echo 'export CF_Token="your_api_token"' >> /etc/profile
echo 'export CF_Email="your@email.com"' >> /etc/profile
source /etc/profile

四、证书申请

cd /usr/local/share/acme.sh
export CERT_DOMAIN="nas.yourdomain.com"
export CERT_DNS="dns_cf"
./acme.sh --issue --home . -d "$CERT_DOMAIN" --dns "$CERT_DNS" --keylength ec-256

五、证书部署

export SYNO_Username='admin'
export SYNO_Password='your-password'
export SYNO_Certificate=""
./acme.sh --deploy --home . -d "$CERT_DOMAIN" --deploy-hook synology_dsm

六、自动续期配置

  1. 控制面板 > 任务计划
  2. 新增 > 计划的任务 > 用户定义的脚本
  3. 配置:
    • 常规:名称"SSL自动续期",用户root
    • 计划:每周日3:00
    • 任务设置:
      #!/bin/bash
      /usr/local/share/acme.sh/acme.sh --cron --home /usr/local/share/acme.sh/ >> /var/log/acme-renew.log 2>&1
      

七、故障排查

常见问题

  1. API连接失败

    • 检查DNS服务商API限制
    • 尝试添加--debug 2参数
  2. 部署失败

    export SYNO_Debug=1
    ./acme.sh --deploy ... 2>&1 | tee deploy.log
    

结语

通过本文介绍的方法,您可以:
✅ 完全免费获取可信SSL证书
✅ 避免开放80/443端口的安全风险
✅ 支持多域名和子域名,直接用*通配符
✅ 实现全自动续期
✅ SSL证书想不掏钱,就用这个来实现。

---------------------------------干货在这 --------------------------------------------

补录实操

以上是基本的流程和操作。以下是我基于阿里云域名的脚本,仅供参考:

1. 下载包并安装(github上下载即可)

特别注意,下载后的包文件名是acme.sh,执行文件在./acme.sh/acme.sh

# 下载
git clone https://github.com/acmesh-official/acme.sh.git
# 安装,前面那个是执行文件,一般在./acme.sh/acme.sh
./acme.sh --install --nocron --home /usr/local/share/acme.sh --accountemail "email@gmail.com"

2. 申请创建证书(需要aliyun的授权key来操作域名设置)

#!/bin/bash
export Ali_Key="LTAI5tP45YCLyramT"
export Ali_Secret="hMIRtFln9niu4eci"
export CERT_DOMAIN="funbox.cn"
export CERT_DOMAINS="*.funbox.cn"
/usr/local/share/acme.sh/acme.sh --issue --force --keylength 2048 --dns dns_ali --server letsencrypt --home . --keylength 2048 -d "$CERT_DOMAIN" -d "$CERT_DOMAINS"

输出截图示例:
在这里插入图片描述

3. 把生成的证书导入到群辉nas(注意https端口和是否使用insecure)

#!/bin/bash
export CERT_DOMAIN="funcbox.cn"
export CERT_DOMAINS="*.funcbox.cn"
export SYNO_USE_TEMP_ADMIN=1
export SYNO_SCHEME="https"
export SYNO_PORT="5001"
/usr/local/share/acme.sh/acme.sh --deploy --insecure --home . -d "$CERT_DOMAIN" -d "$CERT_DOMAINS" --deploy-hook synology_dsm

4. 设置定时任务脚本

就是定时执行更新,设置–home为证书位置。
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词