如何在Linux上使用Caddy搭建HTTPS網站?
介紹
在網站安全方面,HTTPS 是一個必不可少的組成部分。HTTPS(超文字傳輸安全協議)是一種對網站與其訪問者之間傳輸的資料進行加密的協議。
加密確保在網站上共享的任何敏感資訊(例如登入憑據或付款詳細資訊)不會被第三方使用者攔截。如果沒有 HTTPS,網站容易受到中間人攻擊和網路釣魚攻擊等攻擊。
這些型別的攻擊可能導致嚴重的資料洩露,並導致使用者信任度下降。除了提供安全益處外,HTTPS 還具有 SEO 優勢,因為像 Google 這樣的搜尋引擎將其視為排名因素。
準備環境
設定域名和DNS記錄
準備環境的下一步是為您的網站設定域名。域名就像一個地址,允許使用者透過瀏覽器訪問您的網站。您可以透過許多提供商(例如 Namecheap 或 GoDaddy)註冊域名。
註冊域名後,您需要配置 DNS 記錄,以便訪問者在瀏覽器中輸入您的域名時可以找到您的網站。您通常需要建立一個 A 記錄,該記錄指向您的伺服器的 IP 地址。
在您的伺服器上安裝Caddy
您需要在伺服器上安裝 Caddy 才能使用 HTTPS 託管網站。Caddy 是一款 Web 伺服器,它使用 Let's Encrypt 證書輕鬆為任何網站配置 HTTPS。
要在 Ubuntu Server 20.04 LTS 上安裝 Caddy,首先新增 Caddy 儲存庫金鑰:
sudo apt update sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/cfg/gpg/gpg.155B6D79CA56EA34.key' | sudo tee /etc/apt/trusted.gpg.d/caddy-stable.asc
然後新增 Caddy 儲存庫本身:
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/cfg/setup/config.deb.txt?distro=debian&version=any-version' | sudo tee /etc/apt/sources.list.d/caddy-stable.list sudo apt update sudo apt install caddy
配置Caddy以使用HTTPS
建立Caddyfile以定義您的網站配置
在 Linux 伺服器上安裝 Caddy 後,下一步是建立 Caddyfile。此檔案允許您定義網站的配置,例如它將服務哪些域名以及如何路由流量。要建立一個基本的 Caddyfile,請開啟文字編輯器並輸入以下內容:
yourdomain.com { root /var/www/html }
將“yourdomain.com”替換為您實際的域名,並將“/var/www/html”替換為網站根目錄的路徑。此簡單的配置告訴 Caddy 在有人訪問您的域名時從指定的目錄提供檔案。
使用Let's Encrypt證書為您的網站新增TLS加密
Caddy 最好的功能之一是它使新增 TLS 加密(HTTPS 中的“S”)變得非常容易。Let's Encrypt 是一個開放的證書頒發機構,提供所有主流瀏覽器都認可的免費 SSL/TLS 證書。要在 Caddy 中使用 Let's Encrypt,請將以下行新增到您的 Caddyfile:
tls { dns cloudflare {env.CLOUDFLARE_API_TOKEN} }
此配置告訴 Caddy 使用 Cloudflare DNS 驗證自動獲取和更新 SSL/TLS 證書。將“{env.CLOUDFLARE_API_TOKEN}”替換為您伺服器上環境變數中儲存的實際 Cloudflare API 令牌。
使用SSL Labs測試您的HTTPS設定
使用 Caddy 和 Let's Encrypt 為您的網站配置 HTTPS 後,務必測試其安全級別。一個很好的工具是 SSL Labs 的伺服器測試 (https://www.ssllabs.com/ssltest/)。只需將您的域名輸入提供的欄位中,然後單擊“提交”。
測試將評估您網站的 SSL/TLS 配置,並根據其安全功能提供等級。爭取獲得“A”級,以確保您的網站儘可能安全。
高階配置選項
自定義Caddyfile
Caddy 的簡潔性是其最大的優勢之一,但它也允許進行大量自定義。除了指定網站根目錄等基本設定外,您還可以將指令新增到 Caddyfile 以增強功能。
例如,您可以設定從 HTTP 流量到 HTTPS 流量的重定向,確保所有網站訪問者都訪問安全連線。如果您網站已上線一段時間並且存在使用 HTTP 指向它的現有外部連結,這尤其有用。
另一個高階配置選項是在 Caddyfile 中設定子域名。子域名可以幫助組織大型網站上的內容,並使訪問者更容易找到他們想要的內容。
例如,如果您有一個銷售服裝和配飾的電子商務網站,您可以建立諸如“shirts.example.com”或“accessories.example.com”之類的子域名。設定子域名涉及在 Caddyfile 中建立具有各自子域名名稱的單獨配置塊。
配置自動證書續期
Let's Encrypt 證書每 90 天到期一次,這意味著需要定期續期才能確保網站上不間斷的 HTTPS 安全性。但是,每隔幾個月手動續期證書可能會非常耗時且容易出錯。幸運的是,Caddy 使配置自動證書續期變得很容易。
要在 Caddy 中啟用自動續期,只需新增“tls”指令,後跟“self_signed off”和“management”。management 指令指定應在何處持久儲存 ACME 客戶端註冊,以便在伺服器或應用程式例項的後續重新啟動期間無需任何額外的使用者干預即可自動續訂證書。
雖然乍一看自定義 Caddyfile 似乎令人生畏,但一旦您瞭解了所有內容是如何協同工作的,它實際上非常簡單。此外,配置自動證書續期可確保您的 HTTPS 安全性保持最新,無需任何手動干預。
常見問題排查
除錯配置過程中可能出現的一些常見錯誤,例如 DNS 或防火牆設定問題
儘管盡了最大努力,但在為 HTTPS 配置 Caddy 時仍可能遇到一些錯誤。使用者面臨的最常見問題之一是 DNS 問題。為了準確配置 HTTPS,您的網站需要有效的域名和準確的 DNS 記錄。
如果您在透過 HTTPS 訪問網站時遇到問題,請首先仔細檢查您的域名和 DNS 記錄是否已正確配置。此部分的錯誤配置可能導致伺服器錯誤定向,並隨後破壞您的 SSL 證書。
效能和安全最佳化技巧
在透過 HTTPS 託管網站時,Caddy 提供了幾種不同的方法來最佳化效能和安全性。Caddy 的開發人員自己提供的最有價值的技巧之一是使用 A+ 級 SSL 密碼套件來提高安全標準,同時仍保持高效能水平。另一種提高效能的方法是在內容分發網路 (CDN) 上快取靜態內容,如影像或 CSS 檔案。
CDN 將頻繁訪問的頁面的快取版本儲存在更靠近使用者地理位置的地方,從而減少頁面載入時間的延遲。至於安全性,請確保在故障排除或最佳化配置期間出現任何問題時,您都擁有最新的備份。
結論
按照本指南操作後,您現在應該已經在 Linux 伺服器上使用 Caddy 託管了一個使用 HTTPS 的網站。使用 HTTPS 對於保護您的網站以及在瀏覽您的網站時讓您的訪問者安心至關重要。藉助 Caddy,HTTPS 的配置過程得到了簡化和簡化,使其成為重視安全性和易用性的 Web 開發人員的絕佳選擇。
在本指南中,我們介紹了使用 Caddy 在 Linux 上使用 HTTPS 託管網站的必要步驟。我們首先透過在伺服器上安裝 Linux、配置 DNS 設定和安裝 Caddy 來設定我們的環境。