mTLS 双向 TLS 配置指南
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/mtls-configuration。
技能介绍
要解决什么问题
服务间若只依赖网络边界或单向 TLS,一旦内网被突破,流量往往难以区分合法工作负载与冒充方。双向 TLS(mTLS) 要求客户端与服务端同时出示并校验证书,是零信任里「默认不信任、先验证再通信」的常见落点。实际落地还会碰到证书层级设计、Istio/Linkerd 策略、cert-manager 与 SPIFFE/SPIRE 集成,以及握手失败、证书到期与合规审计等运维问题。
技能如何帮你落地
本技能按「目标 → 约束 → 输入 → 实践 → 验证」组织,强调可执行步骤与验证方法;更细的示例见 resources/implementation-playbook.md。
- 核心概念:mTLS 握手流程、证书链与 CA 层级
- 模板:Istio 严格模式 mTLS、DestinationRule、cert-manager 与 Istio 集成、SPIFFE/SPIRE、Linkerd 自动 mTLS
- 运维专题:证书轮换、TLS 握手与链路的调试思路
- 最佳实践:从宽松模式逐步切到严格模式;监控到期并告警;工作负载证书短生命周期(如 24 小时以内);规划 CA 轮换;记录 TLS 错误便于审计
适用边界与禁忌
任务与 mTLS 配置无关,或需要完全另一套领域/工具时,不要用本技能硬套。
- 禁忌:生产环境为图省事关闭 mTLS;忽视到期而不做自动轮换;依赖自签名证书而非规范 CA 链;跳过完整链验证
- 参考方向:Istio 安全文档、SPIFFE/SPIRE、cert-manager、NIST 零信任架构等(技能内资源列表)
使用场景
- 在 Kubernetes 上为 Istio 从 PERMISSIVE 逐步切到 STRICT mTLS,并验证 sidecar 间握手成功
- 为多集群业务配置 cert-manager 签发工作负载证书,并与 Istio Gateway 集成完成轮换
- 生产环境出现 503/握手失败,需要按证书链、SAN 与 DestinationRule 逐项排查 mTLS
- 为满足 PCI-DSS 或 HIPAA,梳理服务间加密与双向身份校验的落地与审计证据
适合人员
- 负责 Istio/Linkerd 落地的平台工程师,需要可复制的 mTLS 策略模板与验证清单
- 安全架构师,要在内网服务间推行零信任并设计 CA 层级与短周期证书策略
- SRE 在值班中处理 TLS 握手与证书过期告警,需要结构化调试步骤与日志要点
- 受合规约束的运维团队,需把 mTLS、轮换与 TLS 错误日志纳入常态化运维流程