【问题标题】:Ensuring full certificate chains are provided to Secure Transport peers确保向安全传输对等方提供完整的证书链
【发布时间】:2015-02-17 06:09:13
【问题描述】:

Apple 的安全传输 API 定义了一个函数 SSLSetCertificate,其中 certRefs 参数是一个证书数组。文档状态(强调添加):

您必须在certRefs[0] 中放置一个SecIdentityRef 对象,该对象标识叶证书及其对应的私钥。指定根证书是可选的; 如果未指定,则验证此处指定的证书链的根证书必须存在于系统范围的可信锚证书集中。

虽然它说“根证书...必须存在”,但目前尚不清楚如此找到的信任链是否会真正提供给 SSL 对等方(尽管这很困难)考虑存在该要求的任何其他原因)。

  1. 如何确保向对等方提供完整的证书链(返回自签名根,或者系统信任锚) ?

  2. 特别是,必须所有组成证书都包含在此 certRefs 参数中(或者这无关紧要)?

背景

这个问题跟随an earlier post on ServerFault。现在有了 RTFS,很明显 slapd calls SSLSetCertificateonly the host's identity certificate 并且在任何阶段都没有尝试为安全传输提供证书链 - 也许没关系(因为安全传输应该解决所有问题),但我有预感这可能是问题的原因。

【问题讨论】:

    标签: macos ssl ssl-certificate secure-transport


    【解决方案1】:

    好的,我已经通过libsecurity_ssl 并相信:

    我总结:

    1. 如何确保向对等方提供完整的证书链(返回到自签名根,或者系统信任锚)? p>

      将其传递给SSLSetCertificate

    2. 特别是,必须所有组成证书都包含在此 certRefs 参数中(或者这无关紧要)?

      从文档和代码 cmets 看来,Apple 的意图可能是在未来改变这一点,但目前……是的,他们必须这样做。

    【讨论】:

      猜你喜欢
      • 2013-06-08
      • 1970-01-01
      • 1970-01-01
      • 2011-09-23
      • 2010-10-30
      • 2017-12-06
      • 2018-01-20
      • 1970-01-01
      • 2013-08-10
      相关资源
      最近更新 更多