文档
一个 项目,由 ZeroSSL 出品

HTTPS 快速入门

本指南将向您展示如何在短时间内启动并运行 完全托管的 HTTPS

先决条件

  • 基本的终端/命令行技能
  • 对 DNS 的基本了解
  • 已注册的公共域名
  • 对端口 80 和 443 的外部访问
  • PATH 中包含 caddycurl

在本教程中,将 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!"
							}]
						}
					]
				}
			}
		}
	}
}