HTTPS快速入门
本指南将向你展示如何立即启动并运行完全托管的HTTPS。
先决条件:
- 基本的终端/命令行技能
- 对DNS的基本了解
- 已注册的公共域名
- 外部访问端口 80 和 443
- PATH变量中包含
caddy
和curl
在本教程中,替换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!" }] } ] } } } } }