文件
a 專案

HTTPS 快速入門

本指南將向您展示如何在短時間內開始使用完全託管的 HTTPS。

先決條件

  • 基本終端機/命令列技能
  • 對 DNS 的基本理解
  • 已註冊的公共網域名稱
  • 外部存取端口 80 和 443
  • caddycurl 在您的 PATH 中

在本教學中,請將 example.com 替換為您的實際網域名稱。

設定您網域的 A/AAAA 記錄指向您的伺服器。您可以透過登入您的 DNS 提供商並管理您的網域名稱來完成此操作。

在繼續之前,請透過權威查詢驗證記錄是否正確。將 example.com 替換為您的網域名稱,如果您使用 IPv6,請將 type=A 替換為 type=AAAA

curl "https://cloudflare-dns.com/dns-query?name=example.com&type=A" \
  -H "accept: application/dns-json"

另請確保您的伺服器可以從公共介面在外部存取端口 80 和 443。

我們所要做的就是在配置中使用您的網域名稱啟動 Caddy。有多種方法可以做到這一點。

Caddyfile

這是取得 HTTPS 最常見的方式。

建立一個名為 Caddyfile(無副檔名)的檔案,其中第一行是您的網域名稱,例如

example.com

respond "Hello, privacy!"

然後從同一個目錄執行

caddy run

您將看到 Caddy 配置 TLS 憑證並透過 HTTPS 提供您的網站。這是因為您網站的位址在 Caddyfile 中包含網域名稱。

file-server 命令

如果您只需要透過 HTTPS 提供靜態檔案,請執行此命令(替換您的網域名稱)

caddy file-server --domain example.com

您將看到 Caddy 配置 TLS 憑證並透過 HTTPS 提供您的網站。

reverse-proxy 命令

如果您只需要透過 HTTPS 的簡單反向代理(作為 TLS 終止器),請執行此命令(替換您的網域名稱和實際後端位址)

caddy reverse-proxy --from example.com --to localhost:9000

您將看到 Caddy 配置 TLS 憑證並透過 HTTPS 提供您的網站。

JSON 配置

一般經驗法則是,任何主機匹配器都會觸發自動 HTTPS。

因此,如下所示的 JSON 配置將啟用生產就緒的自動 HTTPS

{
	"apps": {
		"http": {
			"servers": {
				"hello": {
					"listen": [":443"],
					"routes": [
						{
							"match": [{
								"host": ["example.com"]
							}],
							"handle": [{
								"handler": "static_response",
								"body": "Hello, privacy!"
							}]
						}
					]
				}
			}
		}
	}
}