caddy一键https

本指南将向您展示如何快速启用完全托管的 HTTPS。

前提条件:

  • 基本的终端 / 命令行技能

  • 对 DNS 的基本了解

  • 一个已注册的公共域名

  • 外部可访问端口 80 和 443

  • caddy
     和 curl
     在您的 PATH 中

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

设置您的域名的 A/AAAA 记录,使其指向您的服务器。您可以通过登录到您的 DNS 提供商并管理您的域名来完成此操作。

在继续之前,请通过权威查询验证正确的记录。将 example.com
 替换为您的域名,如果您使用的是 IPv6,请将 type=A
 替换为 type=AAAA

1
2
3
4
5
6
7
8
9
10
11
12
curl "https://cloudflare-dns.com/dns-query?name=example.com&type=A" \  -H "accept: application/dns-json"
```

同时,请确保您的服务器可以从公共接口外部访问端口 80443

我们只需要启动 Caddy 并在配置中使用您的域名即可。有几种方法可以做到这一点。
## Caddyfile

这是启用 HTTPS 的最常见方法。

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

example.comrespond “Hello, privacy!”

1
2
  
然后在同一个目录下运行:

caddy run

1
2
3
4
5
  
您将看到 Caddy 为您的站点配置 TLS 证书并通过 HTTPS 提供服务。这是因为您的 Caddyfile 中的站点地址包含了一个域名。
## file-server 命令

如果您的需求仅仅是通过 HTTPS 提供静态文件服务,可以运行以下命令(替换为您的域名):

caddy file-server --domain example.com

1
2
3
4
5
  
您将看到 Caddy 为您的站点配置 TLS 证书并通过 HTTPS 提供服务。
## reverse-proxy 命令

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

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

1
2
3
4
5
6
7
  
您将看到 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!”
                            }]
                        }
                    ]
                }
            }
        }
    }
}

  
  

![江达小记](/images/wechatmpscan.png)