macOS 与 iOS 使用客户端证书访问 mTLS 网站
macOS 与 iOS 使用客户端证书访问 mTLS 网站 本文介绍如何在 macOS 和 iOS 设备上配置客户端证书,以访问启用双向 TLS(mTLS)的 HTTPS 网站。示例使用私有 CA、step-ca、Nginx、PKCS#12 和 PIV 智能卡。文中的域名、证书名称、文件名和 IP 地址均为示例,请替换为自己的实际值。 1. mTLS 认证流程 普通 HTTPS 主要由客户端验证服务器证书;mTLS 还要求服务器验证客户端证书。 基本流程: 客户端访问 HTTPS 站点。 Nginx 在 TLS 握手期间请求客户端证书。 浏览器或系统选择客户端身份,并使用对应私钥完成签名。 Nginx 根据配置验证客户端证书、证书链和有效期。 验证通过后,连接进入 HTTP 层,由站点策略决定是否允许访问。 客户端身份和服务器 CA 信任是两个独立配置: 客户端身份:客户端证书及与之匹配的私钥,用于向服务器证明身份。 服务器 CA 信任:客户端信任签发网站服务器证书的 CA,用于验证 HTTPS 服务器身份。 安装客户端证书不会自动让设备信任私有 CA。 2. macOS:使用 PIV 硬件密钥 如果客户端私钥保存在支持 PIV 的硬件密钥中,可以让私钥留在硬件设备内,避免导出私钥文件。浏览器是否能使用该身份,取决于 macOS、智能卡中间件、密钥设备和浏览器的支持情况。 一般检查步骤: 插入 PIV 硬件密钥。 确认 macOS 能识别智能卡及其证书。 打开浏览器并访问 mTLS 网站。 如果浏览器请求客户端证书,选择对应的身份。 按提示输入 PIN 或完成硬件操作。 结合页面结果和服务器日志确认认证是否成功。 可用以下命令检查系统状态: ...