Mac 与 iPhone 使用客户端证书访问 mTLS 网站
Mac 与 iPhone 使用客户端证书访问 mTLS 网站 本文记录在 macOS 和 iPhone 上使用客户端证书访问内网 mTLS 网站的方法,涉及 CanoKey PIV、step-ca、Nginx 和 iOS 系统证书安装。 1. 环境与认证流程 当前环境: CA:已有的 CX-Homelab-CA Root CA 和 CX-Homelab-CA Intermediate CA。 证书签发:step-ca。 Web 服务器:Nginx 1.25.0。 测试站点:https://www.home.arpa。 Mac 客户端:CanoKey PIV 9A。 iPhone 客户端:通过 PKCS#12 文件导入客户端证书及私钥。 mTLS 与普通 HTTPS 的区别是:服务器验证客户端证书,客户端也需要验证服务器证书。客户端证书必须包含对应的私钥,单独安装 .crt 文件通常不足以完成客户端身份认证。 基本流程如下: 客户端访问 HTTPS 站点。 Nginx 请求客户端证书。 浏览器或系统选择客户端身份,并使用对应私钥完成 TLS 握手。 Nginx 验证客户端证书的有效性、证书链和用途。 验证通过后,服务器允许访问受保护的资源。 需要注意,客户端证书和服务器 CA 信任是两个不同的问题。安装客户端身份,并不意味着设备已经信任签发网站服务器证书的私有 CA。 2. Mac:使用 CanoKey PIV 9A 2.1 当前方案 Mac 使用 CanoKey 的 PIV 9A 槽保存客户端身份。macOS 通过智能卡相关机制识别证书和私钥,浏览器在 TLS 握手时使用该身份。 ...