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!"
}]
}
]
}
}
}
}
}