Проблемы с пониманием проверки цепочки сертификатов SSL

Мое приложение использует SSL для безопасной связи с сервером, и этоВозникли проблемы при проверке цепочки сертификатов. Цепочка выглядит так:

Entrust.net Безопасный центр сертификации серверов -> DigiCert Global CA -> * .ourdomain.com

Мы используем хранилище сертификатов, извлеченное из Mozilla. Он содержит сертификат Entrust.net, но не сертификат DigiCert Global CA.

Насколько я понимаю, промежуточный авторитет неНужно доверять, пока есть полномочия root, но проверка не проходит:

% openssl verify -CAfile mozilla-root-certs.crt ourdomain.com.crt
error 20 at 0 depth lookup:unable to get local issuer certificate

Так что мне нужно явно доверять DigiCert Global CA, чтобы пройти проверку? Это кажется неправильным. Но ты мне скажи!

РЕДАКТИРОВАТЬТеперь я понимаю, что файл сертификата должен быть доступен для OpenSSL заранее. Примерно так работает:

% openssl verify -CAfile mozilla-root-certs.crt -untrusted digicert.crt ourdomain.com.crt
ourdomain.com.crt: OK

Это позволяет мне предоставить копию DigiCert CA без явного указания:Я верю в этовся цепочка еще нуждается в проверке.

Но наверняка браузеры, такие как Firefox, выигралине всегда поставляется с копией каждого сертификатакогда-нибудь понадобится. Там'Всегда будут новые CA, и смысл в том, чтобы использовать безопасность корневого сертификата, чтобы убедиться, что все промежуточные CA действительны. Правильно? Так какделает эта работа? Это действительно так глупо, как выглядит?

Ответы на вопрос(2)

Ваш ответ на вопрос