HTTPS快速入门

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

先决条件:

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

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

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

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

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

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

我们所要做的就是在配置中使用你的域名启动Caddy。有几种方法可以做到这一点。

Caddyfile

这是获取HTTPS最常用的方法。

创建一个名为Caddyfile(无扩展名)的文件,其中第一行是你的域名,例如:

  1. example.com
  2. respond "Hello, privacy!"

然后从同一目录运行:

  1. caddy run

你将看到Caddy提供TLS证书并通过HTTPS为你的站点提供服务。这是可能的,因为你的站点在Caddyfile中的地址包含一个域名。

file-server命令

如果你只需要通过 HTTPS 提供静态文件,请运行以下命令(替换你的域名):

  1. caddy file-server --domain example.com

你将看到Caddy提供TLS证书并通过HTTPS为你的站点提供服务。

reverse-proxy命令

如果你只需要一个基于HTTPS的简单反向代理(作为TLS终结器),请运行以下命令(替换你的域名和实际后端地址):

  1. caddy reverse-proxy --from example.com --to localhost:9000

你将看到Caddy提供TLS证书并通过HTTPS为你的站点提供服务。

JSON配置

一般的经验法则是任何主机匹配器)都会触发自动HTTPS。

因此,如下所示的JSON配置将启用生产就绪的自动HTTPS

  1. {
  2. "apps": {
  3. "http": {
  4. "servers": {
  5. "hello": {
  6. "listen": [":443"],
  7. "routes": [
  8. {
  9. "match": [{
  10. "host": ["example.com"]
  11. }],
  12. "handle": [{
  13. "handler": "static_response",
  14. "body": "Hello, privacy!"
  15. }]
  16. }
  17. ]
  18. }
  19. }
  20. }
  21. }
  22. }