<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>PKCS12 on CX 的博客</title><link>https://blog.imcaoxuan.cn/tags/pkcs12/</link><description>Recent content in PKCS12 on CX 的博客</description><generator>Hugo</generator><language>zh-CN</language><copyright>imcaoxuan.cn</copyright><lastBuildDate>Mon, 26 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.imcaoxuan.cn/tags/pkcs12/index.xml" rel="self" type="application/rss+xml"/><item><title>macOS 与 iOS 使用客户端证书访问 mTLS 网站</title><link>https://blog.imcaoxuan.cn/posts/2026-10-26-mtls-client-cert-macos-ios/</link><pubDate>Mon, 26 Oct 2026 00:00:00 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/2026-10-26-mtls-client-cert-macos-ios/</guid><description>&lt;h1 id="macos-与-ios-使用客户端证书访问-mtls-网站"&gt;macOS 与 iOS 使用客户端证书访问 mTLS 网站&lt;/h1&gt;
&lt;p&gt;本文介绍如何在 macOS 和 iOS 设备上配置客户端证书，以访问启用双向 TLS（mTLS）的 HTTPS 网站。示例使用私有 CA、&lt;code&gt;step-ca&lt;/code&gt;、Nginx、PKCS#12 和 PIV 智能卡。文中的域名、证书名称、文件名和 IP 地址均为示例，请替换为自己的实际值。&lt;/p&gt;
&lt;h2 id="1-mtls-认证流程"&gt;1. mTLS 认证流程&lt;/h2&gt;
&lt;p&gt;普通 HTTPS 主要由客户端验证服务器证书；mTLS 还要求服务器验证客户端证书。&lt;/p&gt;
&lt;p&gt;基本流程：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;客户端访问 HTTPS 站点。&lt;/li&gt;
&lt;li&gt;Nginx 在 TLS 握手期间请求客户端证书。&lt;/li&gt;
&lt;li&gt;浏览器或系统选择客户端身份，并使用对应私钥完成签名。&lt;/li&gt;
&lt;li&gt;Nginx 根据配置验证客户端证书、证书链和有效期。&lt;/li&gt;
&lt;li&gt;验证通过后，连接进入 HTTP 层，由站点策略决定是否允许访问。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;客户端身份和服务器 CA 信任是两个独立配置：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;客户端身份&lt;/strong&gt;：客户端证书及与之匹配的私钥，用于向服务器证明身份。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;服务器 CA 信任&lt;/strong&gt;：客户端信任签发网站服务器证书的 CA，用于验证 HTTPS 服务器身份。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;安装客户端证书不会自动让设备信任私有 CA。&lt;/p&gt;
&lt;h2 id="2-macos使用-piv-硬件密钥"&gt;2. macOS：使用 PIV 硬件密钥&lt;/h2&gt;
&lt;p&gt;如果客户端私钥保存在支持 PIV 的硬件密钥中，可以让私钥留在硬件设备内，避免导出私钥文件。浏览器是否能使用该身份，取决于 macOS、智能卡中间件、密钥设备和浏览器的支持情况。&lt;/p&gt;
&lt;p&gt;一般检查步骤：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;插入 PIV 硬件密钥。&lt;/li&gt;
&lt;li&gt;确认 macOS 能识别智能卡及其证书。&lt;/li&gt;
&lt;li&gt;打开浏览器并访问 mTLS 网站。&lt;/li&gt;
&lt;li&gt;如果浏览器请求客户端证书，选择对应的身份。&lt;/li&gt;
&lt;li&gt;按提示输入 PIN 或完成硬件操作。&lt;/li&gt;
&lt;li&gt;结合页面结果和服务器日志确认认证是否成功。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;可用以下命令检查系统状态：&lt;/p&gt;</description></item></channel></rss>