0%

给 nas 配置多个域名并配置 ssl

家里一个域名, 自己一个域名, 但 nas 只有一个, 本文将介绍如何给 nas 配置多个域名并加上 ssl

1. 环境

  1. 群晖 DSM 7.0
  2. DNS 服务商 cloudflare (两个域名购买自不同地方, 但都在 cloudflare 托管, 这个很简单就不赘述了)
  3. SSL 证书服务商 letsencrypt

2. 配置多个域名

参考[1]

2.1. 获取 cloudflare api

image-20220506185557860

在 cloudflare 域名总览页可以获取到 ZoneID

点击 Get your API token -> Create Token.

image-20220506190924893

选择 Edit zone DNS 模板

image-20220506191019636

选择要实现 DDNS 的域名如下图:

image-20220506191042674

点击 Continue to summary

image-20220506191339773

点击 Create Token 获得生成的 API Token. 注意该 Token 只会显示一次, 要记得保存.

image-20220506191454683

2.2. 配置群晖

通过 SSH 登录群晖, 并切换 root 账户.

下载 cloudflare 脚本, 官方推荐放到 /sbin/cloudflareddns.sh 下.

修改脚本的第六行 proxy=”true” 为 proxy=”false” 不要走 CDN 代理

1
2
3
4
wget https://raw.githubusercontent.com/joshuaavalon/SynologyCloudflareDDNS/master/cloudflareddns.sh -O /sbin/cloudflareddns.sh
# 下载脚本
chmod +x /sbin/cloudflareddns.sh
# 赋予执行权限

运行以下代码代码, 将 cloudflare 添加到群晖的 ddns 列表中

1
2
3
4
5
6
cat >> /etc.defaults/ddns_provider.conf << EOF
[Cloudflare]
modulepath=/sbin/cloudflareddns.sh
queryurl=https://www.cloudflare.com
website=https://www.cloudflare.com
EOF

登录群晖 DSM -> 控制面板 -> 外部访问 -> DDNS -> 新增.

选择服务提供商, 主机名称随便写, 用户名/电子邮箱填 zone id, 密码/密钥填上一步获取到的 Token

image-20220506203013602

image-20220506202902501

至此完成了第一个域名的绑定.

2.3. 第二个域名

第二个域名配置过程基本一致, 唯一不同的是: 添加到群晖 ddns 列表的名称要改一下. (当然了, 如果两个域名是不同的 DNS 服务商是不需要这一步, 直接走一遍 2.2. 即可.)

1
2
3
4
5
6
cat >> /etc.defaults/ddns_provider.conf << EOF
[Cloudflare其他名字]
modulepath=/sbin/cloudflareddns.sh
queryurl=https://www.cloudflare.com
website=https://www.cloudflare.com
EOF

然后再走一遍 2.2.

为什么要这样呢?

image-20220506204105620

配置 SSL

  1. 下载脚本[4]到 nas 中, 如果原作者的库没了, 这里有 fork.

  2. 编辑 config 文件如下

    image-20220513224022497

  3. ssh 进入 nas, 以 root 身份运行

    1
    2
    # 在 syno_acme 路径下
    ./cert-up.sh update

    image-20220513224204407

脚本会自动下载 acme 脚本, 并通过 acme 脚本申请证书. 第一次要验证你拥有该域名会有些慢, 后面就快了.

image-20220513224416625

image-20220513224507322

要注意, web station 的内容要重启后才能生效.

参考链接