Address
304 North Cardinal St.
Dorchester Center, MA 02124

Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM

Home Shop Cart0 連絡我 

在群暉(Synology)上使用反向代理配置 Home Assistant 的 HTTPS(使用 neilpang/acme.sh Docker 容器)

在本教程中,我們將詳細介紹如何使用群暉(Synology)NAS 上的 Docker 套件和 “反向代理伺服器” 套件,以及 neilpang/acme.sh Docker 容器,來配置 Home Assistant 的 HTTPS 反向代理。這將確保您的 Home Assistant 在安全的 HTTPS 連線下執行。

前提條件

在開始之前,請確保您已經準備好以下條件:

  1. 擁有執行中的群暉(Synology)NAS。
  2. 已在群暉 NAS 上安裝 Docker 套件和 “反向代理伺服器” 套件。
  3. 已經安裝並配置了 Home Assistant,並知道其 IP 地址和埠號。

步驟 1:在群暉套件中心安裝 neilpang/acme.sh Docker 容器

首先,我們需要安裝 neilpang/acme.sh Docker 容器,以便產生 Let’s Encrypt 證書。

  1. 打開群暉的 “套件中心”。
  2. 在左上角的搜索框中輸入 “neilpang/acme.sh”,然後找到該容器並點選 “安裝”。

容器將會自動下載和安裝。

步驟 2:配置 neilpang/acme.sh 容器

容器安裝完成後,我們需要配置它來產生 Let’s Encrypt 證書。請按照以下步驟操作:

  1. 在 “套件中心” 中找到已安裝的 neilpang/acme.sh 容器,然後點選 “啟動”。
  2. 在容器的 “詳細資訊” 頁面,點選 “終端” 以進入容器的命令列界面。
  3. 在容器終端中,執行以下命令以配置 acme.sh。確保將 <YOUR_EMAIL> 替換為您的電子郵件地址,<YOUR_DOMAIN> 替換為您的域名,以及 <YOUR_DNS_PROVIDER> 替換為 “dns_cf” 以表示 Cloudflare:

/acme.sh --set-default-ca --server letsencrypt

/acme.sh --issue --dns dns_cf -d <YOUR_DOMAIN> -k 4096

這些命令將設定 acme.sh 使用 Let’s Encrypt 證書頒發機構,併爲您的域名申請證書,同時使用 Cloudflare 的 DNS API 進行驗證。

請確保您已在 Cloudflare 上設定正確的 DNS 記錄,並使用正確的 Cloudflare API Token 來完成驗證。

在 Cloudflare 申請 Let’s Encrypt 驗證所需的 DNS 記錄

爲了成功產生 Let’s Encrypt 證書,您需要在 Cloudflare 上設定相應的 DNS 記錄以供 Let’s Encrypt 驗證。以下是詳細步驟:

  1. 登錄到您的 Cloudflare 帳戶。
  2. 選擇與您的 Home Assistant 域名相同的域名。
  3. 在 Cloudflare 控制面板左側的菜單中,選擇 “DNS” 以進入 DNS 設定頁面。
  4. 在 DNS 設定頁面,查詢或建立以下 DNS 記錄:
    • 記錄型別: TXT
    • 主機名或名稱: _acme-challenge(這是 Let’s Encrypt 驗證的預設名稱)
    • 記錄值或內容: 這個值將在您執行 acme.sh 命令時產生,通常是一長串字元,確保唯一性。產生后,將其複製並儲存在一個安全的位置,以備將來使用。
    請注意,驗證內容將在執行 acme.sh 命令時產生,所以您需要等待產生后才能設定。
  5. 儲存或更新 DNS 記錄。
  6. 等待 DNS 記錄生效。DNS 記錄的生效可能需要一些時間,具體取決於您的 DNS 服務提供商。請耐心等待,直到 DNS 記錄在全球範圍內生效。

配置群暉反向代理伺服器

現在,您已經成功產生 Let’s Encrypt 證書並完成 Cloudflare 的 DNS 驗證。接下來,我們將配置群暉自帶的 “反向代理伺服器” 套件,以便將 HTTPS 流量引導到 Home Assistant。

  1. 打開群暉的 “控制面板”。
  2. 在 “網路” 部分,找到並點選 “反向代理伺服器”。
  3. 在 “反向代理伺服器” 頁面,點選左下角的 “建立” 按鈕以新增一個新的反向代理規則。
  4. 在 “常規” 選項卡中,配置以下設定:
  • 名稱: 給規則起一個名稱,例如 “Home Assistant HTTPS”。
  • 協議: 選擇 “HTTPS”。
  • 主機名: 輸入您的域名,例如 “your-domain.com“。
  • 埠: 輸入 Home Assistant 的埠號(預設為 8123)。
  • 部分目標 URL: 保持為空。
  1. 在 “身份驗證” 選項卡中,如果您的 Home Assistant 需要身份驗證,請配置相關設定。否則,保持預設設定。
  2. 在 “SSL 證書” 選項卡中,配置以下設定:
    • SSL 證書: 點選 “上傳” 並選擇您之前產生的 Let’s Encrypt 證書檔案 (fullchain.cer)。
    • 私鑰: 點選 “上傳” 並選擇您之前產生的 Let’s Encrypt 私鑰檔案 (your-domain.com.key)。
  3. 在 “高級設定” 選項卡中,不需要進行任何更改,除非您有特定的需求。
  4. 點選 “應用” 以儲存反向代理規則。

步驟 4:測試 HTTPS 連線

現在,您可以通過瀏覽器測試 HTTPS 連線是否正常工作。在瀏覽器中輸入您的域名(例如 https://<YOUR_DOMAIN>),應該能夠安全地訪問 Home Assistant。

通過按照這些詳細的步驟,您已成功配置了 Let’s Encrypt 證書以及群暉反向代理伺服器,從而實現了 Home Assistant 的安全 HTTPS 訪問。

步驟 5:設定自動證書更新

爲了確保您的 Let’s Encrypt 證書始終保持最新,我們可以設定自動證書更新。以下是如何執行的步驟:

  1. 回到 neilpang/acme.sh 容器的終端界面。
  2. 執行以下命令,將證書的自動更新設定為每月一次: /acme.sh --upgrade --auto-upgrade
  3. 執行以下命令,檢視計劃的證書更新任務: /acme.sh --list 這將列出所有計劃的任務,包括證書的自動更新。

現在,您的 Let’s Encrypt 證書將每個月自動更新一次,無需手動干預。

總結

通過按照這些詳細的步驟完成操作,您已成功配置了 Let’s Encrypt 證書以及群暉反向代理伺服器,從而實現了 Home Assistant 的安全 HTTPS 訪問,並設定了證書的自動更新。如果您有任何進一步的問題或需要幫助,請隨時提出。希望這篇教程對您有所幫助!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *