iOS 添加受信任的根证书 - Public 还是私有?

iOS adding a trusted root certificate - Public or Private?

我对 PKI/SSL/TLS 有非常基本的了解,但没有太多经验。我有几个 iOS 设备通过 VPN 连接到内部服务器。服务器可访问,但我们收到 SSL 错误。我知道我需要将 CA 的证书添加到 iOS 设备 - 但我很困惑我是添加 CA 的 public 还是私人证书?

根据这个博客是私人的,但我想先验证一下。 http://nat.guyton.net/2012/01/20/adding-trusted-root-certificate-authorities-to-ios-ipad-iphone/

任何建议或进一步的文件将不胜感激。

没有私人证书这种东西。

在非对称加密中,您有两个密钥 - public 密钥和私钥。顾名思义,私钥是保密的,public 密钥是分发的。证书是一个单独的对象,用于将 public 密钥绑定到 "security principal" - 即个人、服务器、证书颁发机构或其他任何东西。

所以你的 VPN 服务器有证书。该证书声明给定的 public 密钥 X 属于您的服务器。当你联系服务器时,它会给你它的证书和 public 密钥,然后你可以通过给它一个随机生成的数字给它来证明它有相应的私钥 sign/decrypt.

但是,当服务器给您证书时,您怎么知道服务器没有撒谎?因为证书是由第三方签署的——证书颁发机构。 CA 使用其私钥签署服务器的证书以确认它所说的是真实的。您可以使用 CA 的 public 密钥验证此签名。但是你怎么知道 CA 的 public 密钥实际上属于 CA?

如您所见,这可以持续一段时间,创建证书链或信任链。最终,您必须拥有一些您只信任而无需任何第三方的证书 - 根证书。 iOS 附带了一组 Apple 信任的,但不包括您的 VPN 服务器链的根。那就是要求您安装的证书。