目录

caddy如何给解析到内网的域名自动签发证书


有时候我们会有这样的需求,在内网自建了一些服务,但是随着https的普及,浏览器已经禁止了http的服务了,可能有些代理到API接口的服务无法使用,这就需要我我们对内网域名签名,caddy可以给公网的域名使用http-01和tls-alpn-01 callenge做自动签名,那么有没有一个基于dns-01 callenge自动签名的办法呢.答案是肯定的

caddy自构建和编译插件

  • 官方自带的 Caddy 不包含 DNS 插件,需要自定义构建(使用xcaddy构建)。

  • 安装xcaddy:

1
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
  • 编译带alidns的caddy(当然还有很多其他家的云服务商)
1
xcaddy build --with github.com/caddy-dns/alidns

局域网ip通过DNS-01自动申请https证书

  • 配置环境变量(这两个key如何申请有很多资料可查)
1
2
export ALICLOUD_ACCESS_KEY="your-access-key"
export ALICLOUD_SECRET_KEY="your-secret-key" 
  • Caddyfile配置
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{
    email youremail@aa.bb
    acme_dns alidns {
        access_key_id {env.ALICLOUD_ACCESS_KEY}
        access_key_secret {env.ALICLOUD_SECRET_KEY}
    }
}

(a-domain) {
    reverse_proxy localhost:3000
}

(b-domain) {
    reverse_proxy localhost:3001
}

(c-domain) {
    reverse_proxy localhost:3002
}

your-a-domain {
    import a-domain
}

your-b-domain {
    import b-domain
}

your-c-domain {
    import c-domain
}