DuckDNS 提供方便且免费的动态 DNS 服务来远程访问您的家庭网络。但是,为了确保连接安全,必须设置 SSL 证书,以启用对 DuckDNS 域的 HTTPS 访问。安装 SSL 证书可以加密您的数据,防止未经授权的访问,并确保您的连接保持私密性。请按照以下详细步骤为您的 DuckDNS 域正确配置 SSL 证书。
方法一:使用 Let's Encrypt 和 Certbot(推荐)
使用 SSL 保护 DuckDNS 域的最有效方法是使用免费的自动证书颁发机构 Let's Encrypt。 Certbot 是一种简化从 Let's Encrypt 获取和续订证书的工具。
步骤一:首先,确保您的 DuckDNS 域配置正确并指向服务器的公共 IP 地址。访问,登录并验证您的域和 IP 设置。
步骤2:在您的服务器上安装 Certbot。对于基于 Debian 或 Ubuntu 的系统,请通过运行以下命令更新包管理器并安装 Certbot:
sudo apt update
sudo apt install certbot步骤3:安装 Certbot 后,使用 DNS 质询方法请求证书,这对于 DuckDNS 来说是理想的选择。运行此命令,替换yourdomain.duckdns.org与您实际的 DuckDNS 域:
sudo certbot certonly --manual --preferred-challenges dns -d yourdomain.duckdns.org在此过程中,Certbot 将提示您将 DNS TXT 记录添加到您的 DuckDNS 域。
第4步:要添加所需的 TXT 记录,请导航至您的 DuckDNS 帐户页面。您将在您的域名旁边看到一个标有“TXT”的字段。将 Certbot 提供的 TXT 值粘贴到此字段中,然后单击“更新”。等待几分钟以确保 DNS 记录传播,然后再继续。
第5步:更新TXT记录后,返回您的服务器终端并按Enter。 Certbot 将验证 DNS 质询并颁发您的 SSL 证书。成功完成后,Certbot 将显示您的证书和私钥文件的路径。
第6步:配置您的 Web 服务器(例如 Apache 或 Nginx)以使用新颁发的证书。例如,在 Nginx 中,您的配置文件将包括:
server {
listen 443 ssl;
server_name yourdomain.duckdns.org;
ssl_certificate /etc/letsencrypt/live/yourdomain.duckdns.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.duckdns.org/privkey.pem;
location / {
proxy_pass https://localhost:YOUR_PORT;
}
}代替YOUR_PORT与您的应用程序的实际端口号。重新启动您的网络服务器以应用更改:
sudo systemctl restart nginx您的 DuckDNS 域现已使用 HTTPS 进行保护,并受到 Let's Encrypt 的有效 SSL 证书的保护。
方法2:使用Home Assistant中的DuckDNS插件
如果您正在运行 Home Assistant,则可以使用官方 DuckDNS 插件来简化 SSL 设置,该插件将 Let's Encrypt 证书管理直接集成到您的 Home Assistant 界面中。
步骤一:在 Home Assistant 仪表板中,导航至“设置”→“附加组件”,然后单击“附加组件商店”选项卡。搜索“DuckDNS”并安装官方 DuckDNS 插件。
步骤2:安装后,访问附加配置并修改它以包含您的 DuckDNS 域和令牌。您的配置应类似于:
domains:
- yourdomain.duckdns.org
token: YOUR_DUCKDNS_TOKEN
lets_encrypt:
accept_terms: true
certfile: fullchain.pem
keyfile: privkey.pem代替yourdomain.duckdns.org和YOUR_DUCKDNS_TOKEN使用您的实际域名和从您的 DuckDNS 帐户页面获取的 DuckDNS 令牌。
步骤3:启动 DuckDNS 插件。它将自动从 Let's Encrypt 获取并管理您的 SSL 证书。 Home Assistant 会将证书存储在/ssl/目录。
第4步:更新您的 Home Assistant 配置(configuration.yaml) 使用 HTTPS 并指定 SSL 证书文件的路径:
https:
ssl_certificate: /ssl/fullchain.pem
ssl_key: /ssl/privkey.pem重新启动 Home Assistant 以应用更改。您的 Home Assistant 实例现在可以通过 DuckDNS 域通过 HTTPS 安全访问。
维护您的 SSL 证书
Let's Encrypt 证书每 90 天过期。幸运的是,Certbot 和 Home Assistant 的 DuckDNS 插件会自动处理证书续订,确保不间断的安全访问。但是,请定期检查 Web 服务器日志或 Home Assistant 通知来验证 SSL 证书的有效性和续订状态。
现在,您的 DuckDNS 域已受到 SSL 证书的保护,您可以放心地远程访问您的家庭网络,因为您知道您的连接已加密并受到保护。
