编辑
2023-08-30
笔记
0

目录

自动HTTPS
安装部署
如果需要接入 Cloudflare CDN 上
接入到 DNS
相关连接

自动HTTPS

当符合下面一些合理的标准时,Caddy会自动为所有站点启用HTTPS:

  • 主机名
    • 不为空
    • 不是localhost
    • 不是一个IP地址
    • 不超过一个通配符(*)
    • 通配符必须是最左边的标签
  • 没有显式指定端口为80
  • 没有显式指定使用http协议
  • TLS没有在站点的定义中被关闭
  • 不是你自己提供的证书和密钥
  • Caddy能够绑定到端口80和443(除非使用DNS验证)

Caddy还会将所有HTTP请求重定向到与HTTPS对应的地址,只要Caddyfile中没有定义主机名的纯文本变体。


安装部署

  • docker-compose.yml
yaml
version: "3" services: caddy: container_name: caddy image: caddy:alpine restart: unless-stopped ports: - "80:80" - "80:80/udp" - "443:443" - "443:443/udp" volumes: - ./Caddyfile:/etc/caddy/Caddyfile - ./caddy/:/data/caddy/
  • Caddyfile
Caddyfile
:80 { redir https://{host}{uri} } uing.vip { log { output stdout format console level ERROR } root * /var/www/uing.vip handle_errors { rewrite * /404.html file_server } file_server } gitea.uing.vip { log { output stdout format console level ERROR } reverse_proxy gitea:3000 } https://example.com { reverse_proxy localhost:8080 { header_up Host {host} header_up X-Real-IP {remote_host} header_up X-Forwarded-For {remote_host} header_up X-Forwarded-Proto {scheme} } }

如果需要接入 Cloudflare CDN 上

  1. 打开 https://dash.cloudflare.com/ 注册登录
  2. 添加网站,更改域名的 DNS
  3. 打开 https://dash.cloudflare.com/profile/api-tokens
  4. API 令牌 -> 创建 API 令牌 -> 编辑区域 DNS -> 选择模板 -> 区域资源 -> 对应网站
  5. 获取到的API KEY -> docker-compose.yml -> caddy 容器 -> 替换 CF_API_TOKEN 环境变量 -> 替换 DOMAIN 环境变量(也可以是二级或三级域名)
  6. https://dash.cloudflare.com -> 对应网站
  7. SSL/TLS -> 源服务器 -> 源证书 -> 经过身份验证的源服务器拉取 -> 打开
  8. SSL/TLS -> 概述 -> 您的 SSL/TLS 加密模式为 -> 完全(严格)
  • docker-compose.yml
yaml
version: "3" services: caddy: container_name: caddy build: dockerfile: ./caddy-cloudflare-Dockerfile restart: unless-stopped ports: - "80:80" - "80:80/udp" - "443:443" - "443:443/udp" environment: - CF_API_TOKEN=XXX - DOMAIN=XXX volumes: - ./Caddyfile:/etc/caddy/Caddyfile - ./caddy:/data/caddy
  • Caddyfile
Caddyfile
{env.DOMAIN} { log { output stdout format console level ERROR } reverse_proxy gitea:3000 }
  • caddy-cloudflare-Dockerfile
Dockerfile
FROM caddy:builder-alpine AS builder RUN xcaddy build --with github.com/caddy-dns/cloudflare FROM caddy:alpine COPY --from=builder /usr/bin/caddy /usr/bin/caddy

接入到 DNS

相关连接

本文作者:菜鸟

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 许可协议。转载请注明出处!