如何在樹莓派 4 上使用 Conduit 設定 Matrix 伺服器
在 Raspberry Pi 4 上建立一個輕量級的 Matrix 家庭伺服器,包含 Conduit、Docker、NGINX、HTTPS、註冊控制、聯合身份驗證和檢查功能。
即使憑證授權單位 (CA) 聲稱憑證已正確頒發,Zimbra 上的商業 SSL 憑證仍可能出現多種令人沮喪的故障。最常見的問題通常並非憑證本身:私鑰與傳回的憑證不符、缺少中間 CA、憑證的「使用者備用名稱」(SAN) 中缺少主機名,或者管理員在驗證憑證鏈之前部署了檔案。
處理這項工作最安全的方法是將其視為一系列檢查,而不是單一「安裝憑證」命令。 Zimbra 官方文件中的憑證工具zmcertmgr可以建立憑證簽署請求 (CSR)、驗證私鑰和 CA 鏈、將憑證部署到 Zimbra 服務,並顯示目前已啟動的憑證。 Zimbra 技術中心在其《管理控制台和 CLI 憑證工具指南》中記錄了這些指令。
在進行任何更改之前,請先定義您想要的結果。正確的部署應滿足以下所有條件:
mail.example.com。zmcertmgr deploycrt comm完成時沒有出現密鑰不匹配或鏈驗證錯誤。zmcertmgr viewdeployedcrt顯示預期證書。如果其中任何一項檢查失敗,請先修復該特定層,然後再繼續。重複重新部署相同的檔案很少能解決密鑰、SAN 或鏈問題。
| 情況 | 推薦方法 | 主要權衡 |
|---|---|---|
| 使用 Zimbra 產生的 CSR 建立新證書 | 產生 CSRzmcertmgr並保留產生的 CSR。commercial.key | 最簡單的金鑰匹配方式,但私鑰仍然與此 Zimbra 安裝綁定。 |
| 由現有私鑰頒發的憑證 | 部署前請確認該金鑰是 Zimbra 將使用的金鑰。 | 對遷移很有用,但創建鍵不匹配更容易。 |
| 單節點 Zimbra | 驗證並本地部署,然後重啟 | 簡單明了,只有一個維護視窗。 |
| 多節點 Zimbra | 按節點規劃憑證放置和部署,或使用 Zimbra 支援的多伺服器選項 | 需要加強協調;不要假設單節點流程可以涵蓋所有角色。 |
Zimbra 目前的技術中心頁面指出,在 Zimbra 8.7 及更高版本中,該服務zmcertmgr以使用者身分運作zimbra。頁面還說明,商業私鑰必須commercial.key在配置中指定名稱/opt/zimbra/ssl/zimbra/commercial,並且伺服器憑證和 CA 鏈檔案應在部署前暫存在臨時目錄中。
不要一開始就刪除現有的 SSL 目錄。請先建立一個備份,以便在新部署失敗時可以還原。以下是一個保守的範例(以 root 使用者身分):
cp -a /opt/zimbra/ssl/zimbra /opt/zimbra/ssl/zimbra.backup-$(date +%Y%m%d-%H%M%S)
在變更憑證之前,請記錄目前已部署的憑證:
su - zimbra
/opt/zimbra/bin/zmcertmgr viewdeployedcrt
這樣可以為您提供更改後的基準進行比較。如果您的環境中有多個 Zimbra 節點,請擷取每個相關伺服器上的目前憑證狀態,而不是假設它們完全相同。
對於新的商業證書,請使用生產主機名稱和任何其他SAN建立CSR。 Zimbra文件中記錄了以下語法:
/opt/zimbra/bin/zmcertmgr createcsr comm -new \
-subject "/C=US/ST=CA/L=Sunnyvale/O=Example/OU=IT/CN=mail.example.com" \
-subjectAltNames "mail.example.com"
如果使用者也透過其他名稱(例如 `example.com`)連接,webmail.example.com請在要求憑證時將其包含在 SAN 清單中。現代 TLS 用戶端會根據 SAN 驗證主機名,因此即使僅憑通用名稱看起來正確的證書,如果缺少主機名,瀏覽器仍可能發出警告。
在將 CSR 發送給證書頒發機構之前,請先仔細檢查 CSR:
/opt/zimbra/bin/zmcertmgr viewcsr comm /opt/zimbra/ssl/zimbra/commercial/commercial.csr
檢查點:如果請求的 DNS 名稱錯誤,請在此處停止。如果先頒發了證書,之後才發現缺少 SAN,通常需要 CA 重新頒發證書。
驗證完成後,您的商業 CA 通常會傳回伺服器憑證以及一個或多個中間憑證。 Zimbra 官方的單節點商業憑證流程要求伺服器憑證採用 PEM 格式,並指示管理員將中間憑證和根 CA 憑證合併到一個憑證連結檔中。
典型的舞台佈置佈置如下:
/tmp/commercial.crt
/tmp/ca_intermediary.crt
/tmp/ca.crt
然後按照 Zimbra 文件中記錄的順序建立鏈條:
cat /tmp/ca_intermediary.crt /tmp/ca.crt > /tmp/ca_chain.crt
請使用憑證授權單位提供的與您的憑證產品完全相符的文件。不要因為憑證授權單位名稱相似就從其他無關教學複製中間憑證。憑證授權單位的層級結構會隨時間變化,使用錯誤的中間憑證是導致憑證失效的常見原因unable to get local issuer certificate。
這是最重要的安全關卡。請在目前 Zimbra 版本上以 Zimbra 使用者身分執行文件中記錄的驗證指令:
su - zimbra
/opt/zimbra/bin/zmcertmgr verifycrt comm \
/opt/zimbra/ssl/zimbra/commercial/commercial.key \
/tmp/commercial.crt \
/tmp/ca_chain.crt
驗證成功後,報表會顯示憑證和私鑰匹配,並且憑證有效。 Zimbra 的憑證工具文件解釋說,該驗證verifycrt結合了金鑰檢查和憑證鏈檢查。
commercial.key。請恢復正確的金鑰或使用新的 CSR 重新頒發憑證。只有在驗證成功後才能部署:
/opt/zimbra/bin/zmcertmgr deploycrt comm /tmp/commercial.crt /tmp/ca_chain.crt
Zimbra 的部署流程記錄了將商業憑證複製到其 SSL 區域、附加 CA 鏈、更新憑證設定以及為 MTA、LDAP、代理程式和郵件元件元件等服務安裝憑證資料(如適用於伺服器)。
除非您所用 Zimbra 版本的特定文件明確要求,否則請勿手動覆寫隨機的 Java 金鑰庫或服務憑證檔案。這樣做的目的zmcertmgr是為了保持特定服務的憑證資料的一致性。
部署完成後,重新啟動 Zimbra:
su - zimbra
zmcontrol restart
然後檢查服務狀態:
zmcontrol status
如果服務沒有恢復正常Running,請在宣布證書變更完成之前進行調查。憑證問題可能會影響 LDAP、代理程式、郵箱或其他依賴 TLS 的通信,尤其是在多節點部署中。
viewdeployedcrt。請先使用 Zimbra 隨附的憑證檢視:
/opt/zimbra/bin/zmcertmgr viewdeployedcrt
您也可以檢查已部署的服務憑證是否即將過期:
/opt/zimbra/bin/zmcertmgr checkcrtexpiration all -days 30
最後,測試使用者實際開啟的公共主機名稱。以下是一個從另一台機器進行 OpenSSL 檢查的有效方法:
openssl s_client -connect mail.example.com:443 -servername mail.example.com -showcerts
尋找預期的葉子憑證、正確的主機名稱、完整的憑證鏈以及成功的驗證結果。然後在目前瀏覽器中開啟相同的 HTTPS URL。瀏覽器測試很重要,因為它測試的是使用者實際存取的主機名,而不僅僅是磁碟上的憑證檔案。
如果符合以下任何條件,請變更方法,而不是強制執行單節點步驟:
commercial.key無法驗證為新金鑰對所頒發的憑證。只有當以下所有條件都滿足時,安裝才算完成:verifycrt透過、deploycrt成功、Zimbra 服務返回運作狀態、viewdeployedcrt顯示新證書,並且到真實主機名稱的外部 TLS 連線收到相同的有效證書,而沒有信任或主機名稱警告。
有關指令語法和特定版本行為,請主要參考Zimbra官方憑證工具文件mail.example.com。此處的範例使用佔位符;請將名稱、憑證檔案和組織詳細資訊取代為您環境中頒發的實際值。
在 Raspberry Pi 4 上建立一個輕量級的 Matrix 家庭伺服器,包含 Conduit、Docker、NGINX、HTTPS、註冊控制、聯合身份驗證和檢查功能。
將 Jitsi Videobridge 伺服器新增到共用的 Jitsi Meet 部署中,配置註冊和防火牆訪問,驗證橋接選擇,並了解何時需要 Octo。
在 Zimbra 上安全地安裝商業 SSL 憑證:建立 CSR、建置 CA 鏈、驗證金鑰和憑證、部署、重新啟動服務並確認 HTTPS。
更改預設的 BigBlueButton 徽標,為單一會議添加徽標,並了解何時更廣泛的介面品牌化需要自訂客戶端建置。
了解如何識別、歸檔、壓縮和刪除舊的 Zimbra 稽核日誌,何時避免截斷 audit.log,以及如何驗證磁碟空間和日誌記錄是否正確復原。
透過檢查伺服器狀態、伺服器套接字、Unix 套接字權限、遠端監聽器和受控交付測試來排查 Kopano dagent 儲存伺服器連線故障。
透過識別事務鎖、將鎖定儲存遷移到 Redis、檢查叢集並安全地重新測試來修復 ownCloud 檔案鎖定逾時錯誤。
透過檢查記憶體壓力、仔細調整快取、隔離初始同步以及監控工作進程來排查 Matrix Synapse 在 /sync 期間的 OOM 問題。
使用主金鑰模式、APCu、Redis 或 Valkey 鎖定,安全地啟用 Nextcloud 伺服器端加密,並採取可最大限度減少效能影響的穩定推廣措施。
透過檢查成員資格、權限等級、目標使用者等級和 Synapse 伺服器管理員復原選項(例如 make_room_admin)來修復 Matrix M_FORBIDDEN 房間管理員錯誤。