mgmt/docs/authentik-traefik-setup.md

4.2 KiB
Raw Blame History

Authentik Traefik 代理配置指南

配置概述

已为Authentik配置Traefik代理实现SSL证书自动管理和域名访问。

配置详情

Authentik服务信息

  • 容器IP: 192.168.31.144
  • HTTP端口: 9000 (可选)
  • HTTPS端口: 9443 (主要)
  • 容器状态: 运行正常
  • SSH认证: 已配置密钥认证,无需密码

Traefik代理配置

服务配置

authentik-cluster:
  loadBalancer:
    servers:
      - url: "https://192.168.31.144:9443"  # Authentik容器HTTPS端口
    serversTransport: authentik-insecure
    healthCheck:
      path: "/flows/-/default/authentication/"
      interval: "30s"
      timeout: "15s"

路由配置

authentik-ui:
  rule: "Host(`authentik.git-4ta.live`)"
  service: authentik-cluster
  entryPoints:
    - websecure
  tls:
    certResolver: cloudflare

DNS配置要求

需要在Cloudflare中为以下域名添加DNS记录

A记录

authentik.git-4ta.live  A  <hcp1的Tailscale IP>

获取hcp1的Tailscale IP

# 方法1: 通过Tailscale命令
tailscale ip -4 hcp1

# 方法2: 通过ping
ping hcp1.tailnet-68f9.ts.net

部署步骤

1. 更新Traefik配置

# 重新部署Traefik job
nomad job run components/traefik/jobs/traefik-cloudflare-git4ta-live.nomad

2. 配置DNS记录

在Cloudflare Dashboard中添加A记录

  • Name: authentik
  • Type: A
  • Content: <hcp1的Tailscale IP>
  • TTL: Auto

3. 验证SSL证书

# 检查证书是否自动生成
curl -I https://authentik.git-4ta.live

# 预期返回200状态码和有效的SSL证书

4. 测试访问

# 访问Authentik Web UI
open https://authentik.git-4ta.live

# 或使用curl测试
curl -k https://authentik.git-4ta.live

健康检查

Authentik健康检查端点

  • 路径: /if/flow/default-authentication-flow/
  • 间隔: 30秒
  • 超时: 15秒

检查服务状态

# 检查Traefik路由状态
curl -s http://hcp1.tailnet-68f9.ts.net:8080/api/http/routers | jq '.[] | select(.name=="authentik-ui")'

# 检查服务健康状态
curl -s http://hcp1.tailnet-68f9.ts.net:8080/api/http/services | jq '.[] | select(.name=="authentik-cluster")'

故障排除

常见问题

  1. DNS解析问题

    # 检查DNS解析
    nslookup authentik.git-4ta.live
    
    # 检查Cloudflare DNS
    dig @1.1.1.1 authentik.git-4ta.live
    
  2. SSL证书问题

    # 检查证书状态
    openssl s_client -connect authentik.git-4ta.live:443 -servername authentik.git-4ta.live
    
    # 检查Traefik证书存储
    ls -la /opt/traefik/certs/
    
  3. 服务连接问题

    # 检查Authentik容器状态
    sshpass -p "Aa313131@ben" ssh -o StrictHostKeyChecking=no root@pve "pct exec 113 -- netstat -tlnp | grep 9000"
    
    # 检查Traefik日志
    nomad logs -f traefik-cloudflare-v1
    

调试命令

# 检查Traefik配置
curl -s http://hcp1.tailnet-68f9.ts.net:8080/api/rawdata | jq '.routers[] | select(.name=="authentik-ui")'

# 检查服务发现
curl -s http://hcp1.tailnet-68f9.ts.net:8080/api/rawdata | jq '.services[] | select(.name=="authentik-cluster")'

# 检查中间件
curl -s http://hcp1.tailnet-68f9.ts.net:8080/api/rawdata | jq '.middlewares'

下一步

配置完成后,可以:

  1. 配置OAuth2 Provider

    • 在Authentik中创建OAuth2应用
    • 配置回调URL
    • 设置客户端凭据
  2. 集成HCP服务

    • 为Nomad UI配置OAuth2认证
    • 为Consul UI配置OAuth2认证
    • 为Vault配置OIDC认证
  3. 用户管理

    • 创建用户组和权限
    • 配置多因素认证
    • 设置访问策略

安全注意事项

  1. 网络安全

    • Authentik容器使用内网IP (192.168.31.144)
    • 通过Traefik代理访问不直接暴露
  2. SSL/TLS

    • 使用Cloudflare自动SSL证书
    • 强制HTTPS重定向
    • 支持现代TLS协议
  3. 访问控制

    • 建议配置IP白名单
    • 启用多因素认证
    • 定期轮换密钥

配置完成时间: $(date)
配置文件: /root/mgmt/components/traefik/jobs/traefik-cloudflare-git4ta-live.nomad
域名: authentik.git-4ta.live
状态: 待部署和测试