Mac IKEv2 ECDSA:哪种证书类型属于客户端
在 Mac 上,IKEv2 设置中的 ECDSA256 描述的是本地身份证书,而不是网关或签发者的签名。选择前请先读清每个角色。
在 macOS 上,IKEv2 客户端设置里的 ECDSA 选项只回答一个范围很窄的问题:哪张证书能证明 Mac 的身份。它并不描述网关证书、签发客户端证书所用的签名,也不描述隧道的加密提案。把这四个角色当成同一个兼容性问题,正是正确的本地设置被误判为服务器端不匹配的原因。这个决定不大,但用来做决定的证据必须准确。
该字段只指定一张证书:本地身份
Apple 的 Network Extension API 为客户端凭据提供证书类型,其中包括 NEVPNIKEv2CertificateType.ECDSA256,其文档说明为 ECDSA p-256 证书类型。该属性适用于通过 identityReference 或 identityData 提供的证书。
也就是说,这个决定关乎 Mac 出示的证书以及与之配套的私钥。选择与该叶证书公钥相匹配的类型,并通过受支持的机制提供身份。如果 Mac 没有可用于该身份的私钥,类型选得再对也救不了连接。
受管理的描述文件通过 IKEv2 负载中的 CertificateType 做同样的决定,并配合形如 PayloadCertificateUUID 的证书引用。这些字段对目标操作系统版本有前置条件和架构要求;只把一个裸类型值抄进描述文件是装不上的,设置窗口也未必暴露全部 API 选项。部署前请核对该版本对负载的前置条件。
按角色判断,而不是按证书标签
读一读你正要改的那个字段,问它指向哪张证书。证书查看器里的标签把主体、签发者和签名算法混在一起,其中只有一项属于客户端身份的选择。
| What you inspected | What it controls | Does it choose the Mac certificate type? |
|---|---|---|
| Client leaf public key | The identity the Mac presents | Yes, this is the field's subject |
| Issuer signature algorithm | How the client certificate was signed | No |
| Gateway certificate | What the Mac validates as the peer | No, check it separately |
| IKE and ESP proposals | Algorithms for the tunnel | No, separate proposal settings |
如果证书查看器显示的是 CA 的 ECDSA 签名,那描述的是签发者的签名密钥。客户端自己的密钥仍可能是 RSA,类型字段应当跟随客户端密钥,而不是签名那一行。正是这一处混淆,造成了许多“ECDSA 配置了但连接失败”的报告。改动之前,先把叶证书的密钥类型与配置文件中选定的类型对照一遍。
一旦确定了叶证书,决定就简单了:p-256 客户端密钥用 ECDSA256,其他密钥用另一种受支持的类型。如果客户端证书与它的密钥不匹配,先修正这对组合,再改 VPN 配置。
网关证书是另一个独立决定
网关出示自己的证书,Mac 用信任锚和预期名称来验证它。该证书使用 ECDSA、RSA 还是其他密钥类型,属于服务器的属性,而不是客户端身份设置的属性。
本地支持 ECDSA 客户端证书,并不能证明任何网关证书、曲线或服务器认证配置都能互通。请把服务器身份、证书链和 IKE 认证方式当作各自独立的输入来核对,并用真正要部署的配置进行测试。
如果问题出在网关证书上,症状通常出现在对端验证阶段,而不是身份选择阶段。改客户端类型之前先读失败发生在哪一步,因为信任失败和客户端密钥不匹配并不是同一个修法。
签发者签名和密钥协商组都不是客户端类型
X.509 把主体公钥和签发者签名放在不同字段里。主体公钥信息描述证书中的密钥;签名算法描述 CA 的密钥和签名操作。只有前者对应证书类型设置。
IKE 和 Child SA 提案是另一条轴。ECDSA 证书类型不是 ESP 加密选择,改密钥协商组也不会选中证书类型。一份配置可以既有合法提案又有错误的身份类型,也可以身份类型正确却带了对方拒绝的提案。
在变更记录里把三行分开写:身份证书与密钥、网关信任输入、提案算法。把它们并成一条“加密设置”笔记,下一次故障就无从归因。
用你配置的字段验证这个决定
核对配置实际引用的身份,再确认该引用处的证书具有预期的公钥和可用的私钥。界面显示的类型、被引用的证书和设备上的密钥三者必须一致。
接着确认网关侧的输入:预期服务器名、信任锚和 IKE 认证方式。最后连接,读出握手停在哪一步。身份交换之前的失败说明问题不在这项设置;对端验证阶段的失败则指向网关一侧。
把选定的类型、身份引用和网关证书主体记进部署笔记。下一次更新配置时其中任何一项都可能变化,而三个具名值比一张设置面板截图更容易比对。