Мы добавили два сертификата CA - 1 корневой CA и 1 связанный промежуточный CA - в соответствующее хранилище доверия ОС trust store (/etc/ssl/certs на нашем SuSE 11), потому что они не были предоставлены хранилищем доверия ОС (и, вероятно, никогда не будут, так как их нет в репозитории).
Недавно эти два сертификата исчезли после автообновления, что привело к тому, что клиенты больше не могли подключаться по tls.
Оглядываясь назад, мы не уверены, сделали ли мы обычный рехэш записей, т.е.
# c_rehash /etc/ssl/certs
ЕСЛИ МЫ НЕ СДЕЛАЛИ РЕХЭШ:
Или всегда есть риск потерять сертификаты, если они добавлены в хранилище доверия вручную (на системе, о которой идет речь, две библиотеки ssl: openssl и mozilla-nss)?
Вы не добавляете подчиненные центры сертификации в хранилище якорей доверия. Вы явно доверяете только корневому ЦС (якорь доверия) и неявно доверяете всем сертификатам, подписанным этим корневым ЦС или любым подчиненным ЦС этого Корня.
Если вы не можете построить цепочку между конечным объектом и доверием -anchor затем проверяет, предоставляет ли конечный объект все сертификаты между собой и якорем доверия. См. RFC 5256, раздел 7.4.2 , в частности список_сертификатов
; который гласит, что все сертификаты (с необязательно Root) должны быть представлены в подтверждении TLS.
Кроме того, клиенты Microsoft имеют возможность загружать недостающие сертификаты подчиненного CA, если URL-адрес сертификата указан в расширении AIA. Другие, такие как Mozilla Firefox, не будут использовать это расширение, ссылаясь на конфиденциальность пользователей в качестве оправдания.
Обратите внимание, что если вы явно доверяете подчиненному ЦС, нет гарантии, что ваш клиент будет проверять отозванный его сертификат. Если в будущем подчиненный будет скомпрометирован и отозван корневым центром сертификации, ваш клиент вполне может продолжать доверять ему. Это зависит от реализации.