v2中文文档
项目

HTTPS快速入门

本指南将向你展示如何立即启动并运行完全托管的HTTPS

先决条件:

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

在本教程中,替换example.com为你的实际域名。

将你域的A/AAAA记录指向你的服务器。你可以通过登录你的DNS提供商并管理你的域名来做到这一点。

在继续之前,请使用权威查找验证正确的记录。替换example.com为你的域名,如果你使用的是IPv6,请替换type=Atype=AAAA

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

还要确保你的服务器可从公共接口通过端口80443进行外部访问。

我们所要做的就是在配置中使用你的域名启动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!"
							}]
						}
					]
				}
			}
		}
	}
}