Обеспечение полных цепочек сертификатов для одноранговых узлов Secure Transport.

API безопасного транспорта Apple определяет функцию, SSLSetCertificateиз которыхcertRefsПараметр представляет собой массив сертификатов. В документации говорится (выделение добавлено):

Вы должны поместить вcertRefs[0] SecIdentityRefобъект, который идентифицирует листовой сертификат и соответствующий ему закрытый ключ. Указывать корневой сертификат необязательно; если он не указан, корневой сертификат, который проверяет указанную здесь цепочку сертификатов, должен присутствовать в общесистемном наборе доверенных сертификатов привязки.

Хотя в нем говорится "корневой сертификат... должен присутствовать",неясно, будут ли обнаруженные цепочки доверия фактически предоставлены одноранговому узлу SSL (хотя трудно придумать какую-либо другую причину существования этого требования).

  1. Каким образом можнообеспечить, чтобы одноранговый узел предоставлял полную цепочку сертификатов (обратно в самозаверяющий корень или в качестве привязки доверия системы)?

  2. В частности,должны быть включены все учредительные сертификаты certRefsпараметр (или это не имеет никакого отношения)?

Фон

Этот вопрос следует за предыдущим сообщением на ServerFault.Имея сейчас RTFS, понятно, что звонки slapd SSLSetCertificate только с удостоверением личности хоста и ни на одной стадии не пытается обеспечить Secure Transport цепочкой сертификатов - возможно, это нормально (поскольку Secure Transport должен все это уладить), но я догадываюсь, что это может быть причиной проблемы.

1 ответ

Решение

Хорошо, я пробрался libsecurity_ssl и считаю, что

Я решил:

  1. Каким образом можно обеспечить, чтобы одноранговый узел предоставлял полную цепочку сертификатов (обратно в самозаверяющий корень или в качестве привязки доверия системы)?

    Передайте это SSLSetCertificate,

  2. В частности, должны быть включены все учредительные сертификаты certRefs параметр (или это не имеет никакого отношения)?

    Из документации и комментариев к коду видно, что намерение Apple может состоять в том, чтобы изменить это в будущем, но пока... да, они должны.

Другие вопросы по тегам