# Authentik Traefik 代理配置指南 ## 配置概述 已为Authentik配置Traefik代理,实现SSL证书自动管理和域名访问。 ## 配置详情 ### Authentik服务信息 - **容器IP**: 192.168.31.144 - **HTTP端口**: 9000 (可选) - **HTTPS端口**: 9443 (主要) - **容器状态**: 运行正常 - **SSH认证**: 已配置密钥认证,无需密码 ### Traefik代理配置 #### 服务配置 ```yaml 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" ``` #### 路由配置 ```yaml 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 ```bash # 方法1: 通过Tailscale命令 tailscale ip -4 hcp1 # 方法2: 通过ping ping hcp1.tailnet-68f9.ts.net ``` ## 部署步骤 ### 1. 更新Traefik配置 ```bash # 重新部署Traefik job nomad job run components/traefik/jobs/traefik-cloudflare-git4ta-live.nomad ``` ### 2. 配置DNS记录 在Cloudflare Dashboard中添加A记录: - **Name**: authentik - **Type**: A - **Content**: - **TTL**: Auto ### 3. 验证SSL证书 ```bash # 检查证书是否自动生成 curl -I https://authentik.git-4ta.live # 预期返回200状态码和有效的SSL证书 ``` ### 4. 测试访问 ```bash # 访问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秒 ### 检查服务状态 ```bash # 检查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解析问题** ```bash # 检查DNS解析 nslookup authentik.git-4ta.live # 检查Cloudflare DNS dig @1.1.1.1 authentik.git-4ta.live ``` 2. **SSL证书问题** ```bash # 检查证书状态 openssl s_client -connect authentik.git-4ta.live:443 -servername authentik.git-4ta.live # 检查Traefik证书存储 ls -la /opt/traefik/certs/ ``` 3. **服务连接问题** ```bash # 检查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 ``` ### 调试命令 ```bash # 检查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` **状态**: 待部署和测试