如何使用 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 安裝和續訂;

留下評論

10 款最佳 Ping 掃描工具,協助您尋找網路上的設備

10 款最佳 Ping 掃描工具,協助您尋找網路上的設備

比較 10 款 ping 掃描工具,它們可用於快速發現區域網路、跨平台掃描和 IP 位址管理。了解掃描可以告訴您什麼,以及不能告訴您什麼。

用於追蹤效能的 6 款最佳網路管理工具

用於追蹤效能的 6 款最佳網路管理工具

比較六款網路管理工具的效能監控功能,包括 SNMP 覆蓋範圍、映射、警報、部署模型和成本權衡。

適用於 Windows、iOS 和 Android 的最佳 Wi-Fi 分析器

適用於 Windows、iOS 和 Android 的最佳 Wi-Fi 分析器

比較適用於 Windows、iPhone 和 Android 的 Wi-Fi 分析器,包括頻道擁塞、訊號覆蓋範圍、熱圖和網路故障排除工具。

Ping 監控:7 款免費開源的網路可用性工具

Ping 監控:7 款免費開源的網路可用性工具

比較七款免費開源的 ping 監視器,從完整的網路套件到專注於延遲探測的工具,選擇最適合可用性、丟包率和歷史記錄的工具。

網路中的服務品質 (QoS):服務品質的角色和工作原理

網路中的服務品質 (QoS):服務品質的角色和工作原理

了解 QoS 在網路中的意義,DSCP 標記和流量佇列如何對語音、視訊和業務應用程式進行優先排序,以及 QoS 無法解決的問題。

最佳SFTP伺服器軟體,實現安全檔案傳輸

最佳SFTP伺服器軟體,實現安全檔案傳輸

比較適用於 Windows 和 Linux 的可靠 SFTP 伺服器軟體,包括 OpenSSH、Bitvise、SolarWinds 和 SFTPGo。尋找最適合您的安全性和文件傳輸需求的軟體。

適用於網路團隊的 7 款最佳 IP 位址管理工具

適用於網路團隊的 7 款最佳 IP 位址管理工具

比較七款 IP 位址管理工具,包括子網路發現、DNS 和 DHCP 協調、網路清單和開源 IPAM。

網路監控最佳實務:監控哪些內容以及使用哪些工具

網路監控最佳實務:監控哪些內容以及使用哪些工具

建置實用的網路監控,提供清晰的設備覆蓋範圍、有用的效能指標、可操作的警報,並對 SolarWinds NPM、PRTG 和 OpManager 進行比較。

十大最佳網路掃描工具,幫助您發現裝置和 IP 位址

十大最佳網路掃描工具,幫助您發現裝置和 IP 位址

比較網路掃描工具,以實現快速設備發現、跨平台 IP 掃描和企業級 IPAM,並指導如何將每個選項與您的網路相符。

如何使用 Nmap 進行路由追蹤並讀取網路路徑

如何使用 Nmap 進行路由追蹤並讀取網路路徑

使用 Nmap 的 --traceroute 選項將躍點對應到授權主機,了解躍點和 RTT 輸出,並在不進行過度掃描的情況下排查缺失的回應。