iPad 需要自己的 VPN 客户端证书吗?
一张共享客户端证书把所有设备绑定到同一个可撤销身份。请判断按设备单独注册是否值得多一道管理步骤。
新 iPad 加入团队时,最快的做法是把现有客户端证书导出并安装到平板上。这种做法在有人离职、设备丢失,或有人要求审计哪台设备何时连接过之前都好用。真正要决定的不是证书文件,而是身份:每台设备能否单独授权、单独撤销。成本和管理工作量决定答案,而两者都比看上去小。
同一个签发者,不同的身份
每台设备可以信任同一个证书颁发机构,并连接到同一个网关,同时持有不同的客户端身份。签发者是信任锚,身份则由一对密钥构成,服务端把它的主体映射到某条策略。把两者混为一谈,才会让共享证书显得无害。只有在没人需要知道哪台设备开过会话之前,它才确实无害。
共享签发者能省下配置工作,也不会改变按设备追责的能力。共享身份则把所有设备压缩成一个可撤销单元:撤销一个就等于撤销全部,而授权一台替换设备,就授权了这把密钥曾经产生过的每一个副本。这笔交换最好明确做出,而不是因为周五下午图快就复制一个文件。
当第二张证书代价过高时
按设备注册要多一道步骤:受管理的描述文件、SCEP 请求,或带一次性密码的引导式导入。它还需要一个地方跟踪序列号和到期日,而这正是多数部署会忘记、直到第一张证书过期才想起的部分。两项成本都是一次性的,一旦注册流程把它们自动化,两项都会缩小。
对于两台平板、一个用户的家庭,成本是真实的,共享身份是一句话就能记录的合理决定。但对于必须按人或按设备收回访问权的服务,它就不合理,因为撤销这套说辞正是用证书而不是密码的全部理由。判断部署要看设备多久换一次手,而不是今天有多少台设备。
注册设备,不要复制密钥
现代平台把私钥保存在受保护的存储里,有些还从设计上标记为不可导出。正是这个特性让复制从一开始就不可能,也是为什么从笔记本导出的包无法以任何受支持的方式重新导入平板。硬要尝试,得到的描述文件能干净安装,却永远无法通过认证。
使用部署已经支持的注册方式:受管理的身份描述文件、SCEP 服务,或在设备上签发新密钥的账号流程。为了解决缺失身份而分发证书颁发机构的私钥,是另一种错误,影响范围大得多。颁发机构负责签发凭据,绝不应该被带到端点。
回答问题之前先检查撤销
在选择共享方案之前,先描述最糟那天撤销长什么样。如果答案是一个动作就影响多台设备,那么设计已经对你不利了。
openssl pkcs12 -in client.p12 -info -noout
openssl x509 -in client.pem -noout -subject -issuer -serial -dates
openssl verify -CAfile ca.pem client.pem
检查你实际持有的材料:是否存在私钥、主体写的是什么,以及序列号能否单独撤销。没有私钥的证书文件无法完成任何认证,正因如此,一些复制来的身份在第一次连接时就失败了。
从平板上删除应用不算撤销,服务器会继续接受这个身份,直到有人把它停用。在第一台设备注册之前,把这句话写进操作手册。