Caddy 选择性 mTLS 实战:同一站点,内网强制客户端证书,外网照常访问

发布时间:2026/8/29 14:20:23

Caddy 选择性 mTLS 实战:同一站点,内网强制客户端证书,外网照常访问
Caddy 选择性 mTLS 实战同一站点内网强制客户端证书外网照常访问【免费下载链接】caddyFast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS项目地址: https://gitcode.com/GitHub_Trending/ca/caddy你运营一个网站既要给普通用户开普通 HTTPS又要让内部运维工具走 mTLS双向 TLS握手时服务器和客户端互相出示证书来防伪造。全局开 mTLS 最简单但普通用户的浏览器没有证书直接全军覆没。Caddy 的 TLS 连接策略正好解决这件事client_auth指令可以配合 SNI 域名、客户端 IP 等条件只对命中条件的连接索取并校验客户端证书其余连接不受影响。原理速览Caddy 默认不向客户端要任何证书。打开开关的是tls指令里的client_auth它有两种放法直接写在tls块里对本站点所有连接生效或放进connection_policy里并挂上match条件只对匹配的连接生效。多条连接策略按定义顺序首个命中生效所以选择性本质就是条件策略 未命中即默认不验证书。具体实现见 modules/caddytls/ 目录。前置条件 Caddy 2.x建议 2.8用caddy version确认你自己的 CA 根证书PEM 格式例如放到/etc/caddy/caddy.ca.cer由该 CA 签发的客户端证书与私钥如client.crt/client.key本机装有 curl用于模拟不同客户端做握手测试# 快速确认环境 caddy version openssl verify -CAfile /etc/caddy/caddy.ca.cer client.crt # 应输出 client.crt: OK配置实战最小可用配置先让功能跑起来服务器只接受带证书且验过的连接。把client_auth直接写进tls块对本站点全部连接生效https://internal.example.com { tls /etc/caddy/server.crt /etc/caddy/server.key { # 显式指定服务器证书 client_auth { mode require_and_verify # 无有效证书直接拒绝 trust_pool file { pem_file /etc/caddy/caddy.ca.cer # 信任池你自己的 CA } } } respond Hello from mTLS }mode有四个档位request要证书但不验、require要但不验真伪、verify_if_given给了就验不给也放行、require_and_verify给了且必须验过。配了trust_pool不写mode时默认就是require_and_verify。按条件精细控制同一个域名既要服务内网又要对外时把要求挪进connection_policy并加match条件。下面只对办公网段强制证书外部流量不命中任何策略照常握手https://example.com { tls { connection_policy { match { # 也可以换成 sni internal.example.com按域名或 sni_regexp正则 remote_ip 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 } client_auth { mode require_and_verify trust_pool file { pem_file /etc/caddy/caddy.ca.cer } } } } respond Hello }策略按定义顺序匹配、首个命中生效所以最具体的规则放最上面。match里还支持local_ip按服务器本地接口 IP和sni_regexp正则匹配域名解析逻辑在 modules/caddytls/matchers.go。效果验证 先跑caddy adapt --config Caddyfile --pretty确认语法无误并检查生成的 JSON 里client_authentication字段位置是否符合预期。然后分别模拟不同客户端场景命令预期结果无客户端证书全局 mTLS 站点curl -v --cacert caddy.ca.cer https://internal.example.com握手被拒提示需要客户端证书携带有效证书curl --cert client.crt --key client.key --cacert caddy.ca.cer https://internal.example.com返回Hello from mTLS外部 IP 访问connection_policy 站点curl https://example.com正常返回不要求证书内网 IP 访问connection_policy 站点同上一条不带--cert握手被拒带上证书则成功排障清单 ⚠️现象握手直接失败日志报证书校验错误→ 常见原因客户端证书不是该 CA 签的或trust_pool路径写错 → 处理先用openssl verify在本地确认证书链再核对pem_file路径。现象所有访客都要证书但只想限制一部分→ 常见原因client_auth写在了tls块外层等于全局开启 → 处理移入connection_policy并补上match条件。现象配置的策略不生效→ 常见原因连接策略首个命中生效前面的策略已匹配走该连接 → 处理把更具体的策略挪到更靠前的位置。现象adapt 报 client auth mode not recognized→ 常见原因mode值拼错 → 处理只能是request/require/verify_if_given/require_and_verify四选一。更多解析细节可参考 modules/caddytls/connpolicy.go测试用例 caddytest/integration/caddyfile_adapt/tls_client_auth_cert_file.caddyfiletest 里有一份最小可运行示例。快速参考 ⚡配置项作用默认值client_auth开启客户端证书认证未配置则不索取证书mode认证强度四个档位配了信任池为require_and_verify否则requiretrust_pool指定可信 CA 来源file/inline无match策略命中条件remote_ip/sni/sni_regexp/local_ip不写则策略匹配全部连接connection_policy承载条件策略首个命中生效无下一步建议证书验证通过还不够的在 HTTP 路由里用{tls.remote_cert.*}占位符读取客户端证书主体按身份做二次路由需要吊销或白名单能力时给client_auth追加verifier leaf模块对叶子证书做额外校验。【免费下载链接】caddyFast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS项目地址: https://gitcode.com/GitHub_Trending/ca/caddy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

TickClip:敢于说“不买”的AI购物决策智能体解析

TickClip:敢于说“不买”的AI购物决策智能体解析

2026/8/29 14:20:23

这次我们来看一个不太一样的 AI agent 应用:TickClip。它不是帮你更快下单的购物助手,而是一个会主动告诉你“这件东西不建议买”的 AI shopping agent。同类工具大多在推动你加购、凑单、用券,TickClip 选择了一个反着来的切入点&#xff1a…

AI Coding全景指南:从工具选择到工程化落地实践

AI Coding全景指南:从工具选择到工程化落地实践

2026/8/29 14:10:23

这两年“AI Coding”几乎是从工具圈一路火到了管理层。打开技术社区,满屏都是“AI 辅助编程”“AI Agent 写代码”的话题;打开招聘 JD,不少岗位也把“熟悉 AI 编程工具”写成了加分项。但真正在一线把 AI 用到生产项目里的团队,往…

从“光”到“色”:一文拆解TFT液晶屏如何用晶体管“画”出千万色彩

从“光”到“色”:一文拆解TFT液晶屏如何用晶体管“画”出千万色彩

2026/8/29 14:10:23

1. 从白光到彩色:TFT液晶屏的成像之旅 当你盯着手机屏幕刷短视频时,是否想过这千万种色彩是如何被"画"出来的?这背后是一场光与电的精密共舞。TFT液晶屏的成像过程就像个高效协作的工厂流水线: 背光模组 是发电站&…

如何把扫描件变成结构化文本:PaddleOCR 文档识别从安装到出结果的完整教程

如何把扫描件变成结构化文本:PaddleOCR 文档识别从安装到出结果的完整教程

2026/8/29 15:20:26

如何把扫描件变成结构化文本:PaddleOCR 文档识别从安装到出结果的完整教程 【免费下载链接】PaddleOCR Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between images/PDFs and LLM…

四索并联机构正解:从欠约束建模到实时动力学求解

四索并联机构正解:从欠约束建模到实时动力学求解

2026/8/29 15:20:26

简介:本资源面向机器人学与机械工程领域的高校研究者、研究生及自动化方向工程师,聚焦四索并联机构的核心建模与分析问题,提供可直接运行的运动学与动力学计算工具。压缩包含3个MATLAB脚本文件(.m),总大小仅…

MiniMax H3开源视频生成模型本地部署与Ray分布式推理实践指南

MiniMax H3开源视频生成模型本地部署与Ray分布式推理实践指南

2026/8/29 15:20:26

从 2025 年上半年开始,“开源视频生成模型”突然从一个概念变成了可以触碰的现实。MiniMax H3 的开源,让很多人第一次意识到:原来不用 Sora,不用付费接口,也能在本地 GPU 上跑起一个效果不错的视频生成模型。而 RaySum…

Ventoy 启动盘完整教程:一次安装永久复用,3 步搞定 Windows/Linux 多系统镜像

Ventoy 启动盘完整教程:一次安装永久复用,3 步搞定 Windows/Linux 多系统镜像

2026/8/29 15:20:26

Ventoy 启动盘完整教程:一次安装永久复用,3 步搞定 Windows/Linux 多系统镜像 【免费下载链接】Ventoy A new bootable USB solution. 项目地址: https://gitcode.com/GitHub_Trending/ve/Ventoy 你有没有过这种崩溃瞬间:凌晨客户机掉…

Crawl4AI 实战指南:登录状态、JS 渲染页面与数据提取一次搞定

Crawl4AI 实战指南:登录状态、JS 渲染页面与数据提取一次搞定

2026/8/29 15:20:26

Crawl4AI 实战指南:登录状态、JS 渲染页面与数据提取一次搞定 【免费下载链接】crawl4ai 🚀🤖 Crawl4AI: Open-source LLM Friendly Web Crawler & Scraper. Dont be shy, join here: https://discord.gg/jP8KfhDhyN 项目地址: https:/…

端侧AI工程落地:模型转换、量化与推理引擎选型

端侧AI工程落地:模型转换、量化与推理引擎选型

2026/8/29 15:10:26

端侧AI正在成为硬件厂商和应用开发者共同争夺的新入口。判断一个设备是否具备智能能力,过去看它能不能联网调用云端模型,现在看它在本地、离线、低延迟条件下能不能完成推理。手掌上的手机、桌面上的电脑、车轮上的汽车,是当前端侧AI落地最密…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/27 11:10:02

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/29 10:22:10

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/28 7:34:42

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

四款热门降AI工具测评:研究生和本科生怎么选?

四款热门降AI工具测评:研究生和本科生怎么选?

2026/8/29 0:09:39

马上要交论文了,最近真的被论文ai率折磨的够呛。 明明查重都没问题了,但是ai率就是居高不下,崩溃了,明明都是我自己写的,天杀的,明明都是我亲生的啊 改来改去,终于给我搞出一套完美的降ai方案…

论文降AI率免费攻略:自查、提示词与工具推荐

论文降AI率免费攻略:自查、提示词与工具推荐

2026/8/29 0:09:39

马上要交论文了,最近真的被论文ai率折磨的够呛。 明明查重都没问题了,但是ai率就是居高不下,崩溃了,明明都是我自己写的,天杀的,明明都是我亲生的啊 改来改去,终于给我搞出一套完美的降ai方案…

北京GEO优化服务商推荐:预算型企业如何选北京GEO优化服务商?

北京GEO优化服务商推荐:预算型企业如何选北京GEO优化服务商?

2026/8/29 0:09:39

前言:预算有限的企业更关心投入能否形成可持续的品牌资产。评估北京GEO优化服务商时,不能只比较单篇内容或单月报价,还要看是否能够把问题词、官网、信源和监测串成完整链路。本期重点放在预算配置、试点范围和交付边界,帮助企业先…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/28 7:35:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/28 7:34:51

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/28 7:34:35

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…