Apple の Secure Transport API は関数 を定義しておりSSLSetCertificate
、そのcertRefs
パラメータは証明書の配列です。ドキュメントには次のように記載されています(強調を追加):
リーフ証明書とそれに対応する秘密鍵を識別するオブジェクトに配置
certRefs[0]
する必要があります。SecIdentityRef
ルート証明書の指定はオプションです。指定されていない場合は、ここで指定された証明書チェーンを検証するルート証明書が、トラスト アンカー証明書のシステム全体のセットに存在する必要があります。
「ルート証明書が存在する必要があります」と書かれていますが、そのように見つかった信頼チェーンが実際に SSL ピアに提供されるかどうかは明らかではありません(ただし、その要件が存在する他の理由を考えるのは困難です)。
完全な証明書チェーン(自己署名ルート、またはシステム トラスト アンカーに戻る) がピアに提供されるようにするにはどうすればよいでしょうか?
特に、すべての構成証明書をこのパラメーターに含める必要があり
certRefs
ますか (または関係がありませんか)?
バックグラウンド
この質問は、 ServerFault に関する以前の投稿に続きます。RTFS を使用することで、slapdがホストの ID 証明書のみを使用して呼び出し 、セキュア トランスポートに証明書チェーンを提供しようとする段階がないことは明らかです。これが問題の原因である可能性があります。
SSLSetCertificate