HTTPS 快速入门
本指南将向您展示如何在短时间内启动并运行 完全托管的 HTTPS。
先决条件
- 基本的终端/命令行技能
- 对 DNS 的基本理解
- 已注册的公共域名
- 对端口 80 和 443 的外部访问
caddy
和curl
在您的 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!"
}]
}
]
}
}
}
}
}