Сертификат корневого ЦС SSL не распознается, хотя и присутствует в хранилище доверия. Почему?

Справочная информация:

  • Ubuntu Server 14.10 64-bit on aws.amazon.com/ec2
  • дешевый сертификат сервера PositiveSSL от COMODO
  • 1 сертификат сервера, 2 промежуточных сертификата CA и 1 корневой сертификат CA в виде ZIP архива от COMODO
  • Цитадели httpsd WebCit

проблема:

объединенная цепочка сертификатов кажется правильной, но проверка не выполняется.

openssl s_client myhost:port

показывает цепочка сертификатов и пары эмитент-субъект выстраиваются правильно через цепочку, но:

verify error:num=19:self signed certificate in certificate chain

сертификат корневого ЦС не принимается openssl, хотя по умолчанию он находится в хранилище доверия сервера Ubuntu.

специально:
AddTrustExternalCARoot.crt получено по электронной почте от COMODO и
/etc/ssl/certs/AddTrust_External_Root.pem какие ссылки
/usr/share/ca-certificates/mozilla/AddTrust_External_Root.crt
идентичных.

что здесь не так?

17
задан Reinhard Seifert
03.02.2023 10:47 Количество просмотров материала 2620
Распечатать страницу

3 ответа

OpenSSL по крайней мере через ток (1.0.2 a) имеет ошибка здесь s_client с -CA{path,file} аргумент на самом деле не использует truststore по умолчанию как и должно, и, таким образом, не может проверить сертификаты, которые действительны в соответствии с этим truststore. (Также s_server и s_time, но забота о проверке в тех редка.) См https://serverfault.com/questions/607233/how-to-make-openssl-s-client-using-default-ca . Исправление объявлено в dev, но может потратьте некоторое время на выпуск и распространение. А пока нужно явно указать -CA* аргумент(ы). Обратите внимание, что openssl verify не имеет эту ошибку, и поэтому правильно сообщил сертификат/цепь как действительный.

обновления 2015/08/26: исправление было выпущено 2015/06/12 в 1.0.1 o и 1.0.2 c. Кроме того, при расследовании чего-то еще я обнаружил, что RedHat пакеты, возможно, было хорошо. Более конкретно источник CentOS RPM для openssl-1.0.1e-30.el6.11 который, как я понимаю, является копией RedHat (но не может легко подтвердить) содержит openssl-1.0.1c-default-paths.patch, который содержит изменения к s_client.c s_server.c s_time.c от 2012/12/06, которые кажутся эквивалентными (хотя и не текстуально такими же, как) исправлениям 2015/06/12. Предполагая, что этот патч был применен в пакетах RedHat и CentOS, которые я не могу легко вернуться и проверить, они будут (иметь) работать(ed), как ожидалось.

4
отвечен dave_thompson_085 2023-02-04 18:35

недавно я столкнулся с аналогичной проблемой с сертификатами Comodo при разработке скрипта на Ruby. В конце концов, это было то, что OpenSSL не было в магазине, хотя это выглядело так.

чтобы проверить это, загрузите все промежуточные сертификаты Comodo и создайте комплект сертификатов примерно так (вам нужно будет использовать разные имена сертификатов в зависимости от того, что вы загрузили):

cat EssentialSSLCA_2.crt ComodoUTNSGCCA.crt UTNAddTrustSGCCA.crt AddTrustExternalCARoot.crt > yourDomain.ca-bundle

у Comodo есть статья о том, как это сделать этот.

после того, как сделали, попробуйте проверить сертификат снова с помощью OpenSSL и указав хранилище сертификатов в командной строке:

openssl verify -untrusted yourDomain.ca-bundle cert.pem

этот пример был адаптирован от эта статья Unix и Linux StackExchange.

после того, как вы определили, какой сертификат, это должно быть возможно, чтобы добавить сертификат в локальное хранилище сертификатов,который подробно описан здесь для Ubuntu, а что-то вроде:

создать каталог для дополнительных сертификатов CA в /usr/share / ca-certificates

sudo mkdir /usr/share/ca-certificates/extra

копировать '.crt ' файл в каталог

sudo cp foo.crt /usr/share/ca-certificates/extra/foo.crt

пусть Ubuntu добавить '.путь к файлу ЭЛТ' относительно /usr/доли/ЦС-сертификаты в /etc/ЦС-сертификаты.conf

sudo dpkg-reconfigure ca-certificates
3
отвечен jotap 2023-02-04 20:52

корневой сертификат comodo больше не является доверенным-google для "украденного сертификата comodo", если вы не знаете, почему.

в то время как сертификат comodo может быть дешевым, его стоимость намного меньше, чем его цена: он фактически бесполезен, цепочка доверия нарушена.

0
отвечен Eugen Rieck 2023-02-04 23:09

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх