如何使用 Let's Encrypt 為 ownCloud 伺服器設定 SSL/HTTPS

對於直接託管在 Apache VirtualHost 後面的 ownCloud 伺服器實例,通常的做法是將公共網域指向該伺服器,使 HTTP 網站可訪問,然後針對該主機名稱執行 Certbot 的 Apache 安裝程式。例如,如果您的 ownCloud 位址是 `<your_ownCloud_address>` cloud.example.com,Certbot 可以申請 Let's Encrypt 證書,並設定 Apache 以提供 HTTPS 服務sudo certbot --apache -d cloud.example.com。在正式使用之前,請務必測試網站及其自動續期功能。

此步驟適用於在 Ubuntu 系統上使用 Apache 伺服器部署的 ownCloud Classic 10.16 版本,這與 ownCloud 的 Apache 指南中的假設一致。如果您在 Docker 中執行 ownCloud Classic 11,ownCloud 指出必須在容器前端的 Web 代理上設定 HTTPS。如果託管服務提供者或反向代理已終止 TLS 連接,請在其上配置證書,而不是嘗試將其安裝到 ownCloud 容器中。

請檢查此設定是否適用於您的伺服器

Let's Encrypt 會在頒發憑證前驗證您對所要求的網域擁有控制權。對於常見的 HTTP-01 驗證,Let's Encrypt 必須能夠透過公共 HTTP 連接埠 80 從您的伺服器檢索臨時檔案。該主機名稱必須解析到服務您 ownCloud 網站的公共端點。然後,HTTPS 流量會到達連接埠 443 上的 Apache 端點。

  • 您擁有一個公共主機名,例如cloud.example.com,並控制其 DNS 記錄。
  • 主機名稱解析為 Apache 伺服器或公用反向代理程式的公用 IP 位址。
  • 允許透過相關的防火牆、路由器和雲端安全群組存取入站連接埠 80 和 443。
  • Apache 已經透過該主機名稱的 VirtualHost 為 ownCloud 網站提供服務。
  • 您擁有處理公共 HTTP 和 HTTPS 流量的機器的管理員權限。

如果您的網站位於代理程式、負載平衡器、容器主機或控制面板之後,請在執行 Certbot 之前確定公用 TLS 連線終止的位置。安裝在錯誤機器上的憑證將無法保護瀏覽器到伺服器的連線。對於 ownCloud Classic 11,其支援的 Docker 設計在容器內管理 Apache,並將 HTTPS 部署在 Web 代理上。

準備 ownCloud 主機名稱和 Apache 站點

盡可能使用專用的 ownCloud 主機名稱。 ownCloud 要求每個用於登入的瀏覽器 URL 都必須列trusted_domains在其config/config.php設定檔中。如果您要將 IP 位址或其他主機名稱變更為 ownCloud 主機名cloud.example.com,請在測試新位址之前,將新主機名稱新增至受信任網域陣列中未使用的項目。請勿意外覆蓋其他條目。

在申請憑證之前,請先確認純 HTTP 請求能夠到達預期的 ownCloud 網站。在 Apache 中,VirtualHost 應該使用ServerName指令指定確切的主機名稱。 ownCloud 的 Apache 設定說明假定已設定 VirtualHost,並且在 Ubuntu 系統上,網站定義應放置在 `/etc/hosts` 目錄下/etc/apache2/sites-available/。其他發行版上的路徑和服務名稱可能有所不同。

在變更 Apache VirtualHost 設定之前,請先備份目前的設定。這樣,如果自動安裝程式選擇了錯誤的網站或建立了衝突的 HTTPS 主機,您就可以還原到先前的設定點。如果同一伺服器上有多個站點,請檢查現有的 VirtualHost 配置,確保憑證附加到 ownCloud 主機名,而不是預設站點。

安裝並執行適用於 Apache 的 Certbot。

請根據您的作業系統和 Apache 配置,請按照相應的說明安裝 Certbot。 Certbot 的官方說明建議在許多 Linux 系統中使用 Snap 軟體包,但軟體包的可用性和支援的安裝方式取決於特定的 Linux 發行版。請避免混用來自作業系統軟體套件管理器和 Snap 的多個 Certbot 安裝;您執行的命令certbot應該是您打算使用的 Apache 外掛程式對應的安裝。

在已安裝並支援 Snap 的 Ubuntu 主機上,Certbot 的安裝說明顯示了以下安裝路徑:

sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/local/bin/certbot

如果 Certbot 已安裝,請在新增另一個副本之前,檢查您的 shell 執行的版本以及安裝方式。有關其他支援的安裝選項,請參閱最新的Certbot Apache 安裝指南。

為您的 ownCloud 主機名稱申請並安裝證書:

sudo certbot --apache -d cloud.example.com

請替換cloud.example.com為實際主機名稱。 Certbot 將執行網域驗證,並使用 Apache 安裝程式更新 Apache 以使用已頒發的憑證。如果您希望單一憑證涵蓋多個域名,請明確指定每個域名,例如 `<name>` -d cloud.example.com -d files.example.com。列出的每個網域都必須指向可存取的端點並通過驗證。

Certbot 可能會詢問是否應將 HTTP 請求重新導向到 HTTPS。 HTTPS 虛擬主機正常運作後,啟用重定向即可。 ownCloud 建議在生產環境中使用 HTTPS,並對未加密流量進行永久重定向。如果您希望自行管理 Apache 配置,Certbot 也提供僅憑證模式;請參考 ownCloud 的 Apache 指南正確連接憑證檔案和虛擬主機,然後在重新載入 Apache 之前測試設定。

當 HTTP 驗證無法連線到您的伺服器時

HTTP-01 方法使用 80 連接埠上的路徑。/.well-known/acme-challenge/如果路由器將 80 端口轉送到其他機器、防火牆阻止該端口,或其他代理將該路徑路由到其他位置,即使 ownCloud 頁面透過 HTTPS 加載,驗證也可能失敗。請檢查公用 DNS 和連接埠轉發,並確保 ACME 質詢到達 Certbot 運作所在的相同端點。

如果您的 ISP 或網路策略封鎖了 80 端口,請考慮改用 DNS-01 驗證。它透過 DNS TXT 記錄證明網域控制權,並可頒發通配符證書,但續訂自動化取決於您的 DNS 提供者是否提供適當的 API 外掛程式。如果可以使用範圍較窄的憑證或單獨的驗證主機,請避免在 Web 伺服器上放置廣泛的 DNS 憑證。請勿使用僅限 HTTP-01 的通配符憑證驗證程序。

安裝完成後驗證 Apache 和 ownCloud。

在關閉維護視窗之前,請檢查 Apache 設定是否有效,以及 Certbot 是否列出了新憑證:

sudo apache2ctl configtest
sudo certbot certificates

在 Ubuntu 系統上,Apache 語法檢查成功後會報告配置有效。https://cloud.example.com在瀏覽器中開啟並登入。確認瀏覽器顯示的憑證與主機名稱完全匹配,並測試一個具有代表性的檔案上傳、下載和同步用戶端。如果您啟用了重定向,請造訪 HTTP 位址並確認它是否指向同一個 HTTPS 主機名,且沒有出現重定向循環。

如果 ownCloud 登入頁面報告網域不受信任,請檢查trusted_domains伺服器設定。如果瀏覽器重定向到錯誤的主機名,或者 ownCloud 在反向代理後產生 HTTP 鏈接,請檢查代理的轉發主機和 HTTPS 標頭以及 ownCloud 代理設定。這些設定取決於代理拓撲結構;切勿無故將反向代理的覆蓋設定複製到直接安裝的 Apache 伺服器上。

在確認工作完成前,請檢查續約情況。

Let's Encrypt 的標準憑證有效期限較短,因此必須實現自動續約。 Certbot 安裝通常會提供 systemd 定時器或 cron 任務。請提前使用以下命令測試續期:

sudo certbot renew --dry-run

試運轉會在不取代現有憑證的情況下檢查續約路徑。如果失敗,請讀取 Certbot 的輸出並修復其中指出的 DNS、防火牆、質疑路由或 Apache 問題。確認作業系統服務工具中是否存在定時器或計畫任務;不要因為第一個憑證已頒發就認為續約已生效。如果續訂使用 HTTP-01,請保持 80 連接埠可用,或確保您的 DNS-01 自動化流程仍然可以更新所需的 TXT 記錄。

常見選擇和陷阱

情況推薦路線
ownCloud Classic 10.16 運行在 Ubuntu 上,Apache 直接暴露使用 Certbot 的 Apache 安裝程式來安裝 ownCloud 主機名稱。
在 Docker 中執行 ownCloud Classic 11在容器前的 Web 代理程式上設定 HTTPS。
主機控制面板已具備憑證管理功能。使用面板的 Let's Encrypt 工作流程並驗證其是否續訂。
連接埠 80 無法連線到 Web 伺服器,或需要使用通配符。使用適當的續訂方式對 DNS-01 進行續訂。
Apache 擁有多個虛擬主機確認 Certbot 選擇了伺服器名稱與憑證主機名稱相符的虛擬主機。

在所有相關子網域都透過 HTTPS 正確提供服務之前,請勿啟用 HSTS includeSubDomains;一個主機名稱的標頭會影響瀏覽器處理其子網域的方式。首先確保證書、重新導向和續訂的可靠性。然後,請參考 ownCloud 針對您的完整域名架構提供的 HSTS 和其他 TLS 設定的加固指南。

文件已於 2026 年 10 月 6 日審核。以下確切的檔案路徑和指令假設系統為 Ubuntu,並安裝了 Apache 和 ownCloud Classic 10.16;Docker、反向代理、主機面板、Nginx 和非 Ubuntu 部署需要針對其實際的 TLS 端點提供說明。

參考資料:ownCloud 10.16:使用 Let's Encrypt 配置 Apache;ownCloud 11:HTTPS 和反向代理指南;ownCloud 10.16:受信任的域;Certbot:Apache 安裝和續訂;Let's Encrypt:受信任的域;Certbot:Apache 安裝和續訂;

留下評論

如何使用 Let's Encrypt 為 ownCloud 伺服器設定 SSL/HTTPS

如何使用 Let's Encrypt 為 ownCloud 伺服器設定 SSL/HTTPS

在 Apache 上為 ownCloud 伺服器設定 Let's Encrypt HTTPS。檢查 DNS 和端口,使用 Certbot 頒發證書,啟用重定向,並測試續約。

修復版本升級後 ownCloud “完整性檢查失敗” 的問題

修復版本升級後 ownCloud “完整性檢查失敗” 的問題

升級後診斷 ownCloud 完整性警告,並為核心檔案不符、檔案缺失、額外檔案或應用程式簽署錯誤選擇安全的修復方案。

如何在 ownCloud 伺服器中限制公共連結的過期日期

如何在 ownCloud 伺服器中限制公共連結的過期日期

為 ownCloud Server 公共連結設定最長過期日期,了解它會影響哪些共享,並在不忽略較舊連結的情況下驗證策略。

如何配置 Zimbra GAL 自動同步並驗證其是否正常運作

如何配置 Zimbra GAL 自動同步並驗證其是否正常運作

設定 Zimbra GAL 自動同步,設定輪詢間隔,強制執行測試同步,驗證時間戳,並追蹤過時的內部或外部 LDAP 聯絡人。

如何在 ownCloud Infinite Scale 中設定 LDAP 身份驗證

如何在 ownCloud Infinite Scale 中設定 LDAP 身份驗證

為 ownCloud Infinite Scale 配置 LDAP 支援的登錄,映射使用者和群組,選擇內建或外部 OIDC,保護憑證,並安全地驗證身份驗證。

如何從 ownCloud 10 Classic 遷移到 ownCloud Infinite Scale

如何從 ownCloud 10 Classic 遷移到 ownCloud Infinite Scale

使用支援的 migrate-to-ocis 應用程式規劃 ownCloud Classic 10 到 Infinite Scale 的遷移。了解哪些資料會遷移,哪些資料不會遷移,LDAP 先決條件,指令以及切換檢查。

如何在 Zimbra 中安全地設定 SpamAssassin 自訂規則

如何在 Zimbra 中安全地設定 SpamAssassin 自訂規則

了解 Zimbra 在何處載入自訂 SpamAssassin 規則、如何編寫和驗證 .cf 規則、重新啟動 Amavis、測試郵件頭以及如何安全地回溯。

如何在 Zimbra CE 中備份和還原單一郵箱

如何在 Zimbra CE 中備份和還原單一郵箱

使用 zmmailbox 備份和還原單一 Zimbra CE 郵箱。匯出包含元資料的 ZIP 存檔,進行驗證,並在測試帳戶中安全地測試復原功能。

如何在 ownCloud oCIS 中為使用者配置儲存配額

如何在 ownCloud oCIS 中為使用者配置儲存配額

了解如何為 ownCloud Infinite Scale 使用者設定個人空間配額,將其與專案空間和全域限制區分開來,並按角色為新使用者指派預設值。

修復 BigBlueButton FreeSWITCH SIP 註冊逾時問題:實用診斷指南

修復 BigBlueButton FreeSWITCH SIP 註冊逾時問題:實用診斷指南

透過檢查服務運作狀況、SIP 和 ESL 監聽器、NAT 位址、防火牆規則和日誌來診斷 BigBlueButton FreeSWITCH SIP 註冊逾時問題。