Разорвана ли цепочка сертификатов SSL и как это исправить?

13

Что касается SSL-сертификата на домене example.com, некоторые тесты говорят мне, что цепочка неполна, и, поскольку Firefox хранит собственное хранилище сертификатов, в Mozilla может произойти сбой ( 1 , 2 , 3 ). Другие говорят мне, что все в порядке , как и Firefox 36, который говорит мне, что цепочка сертификатов в порядке.

ОБНОВЛЕНИЕ: Я тестировал на Opera, Safari, Chrome и IE на Windows XP и MacOS X Snow Leopard, все они работают нормально. Сбой только в Firefox <36 в обеих ОС. У меня нет доступа к тестированию в Linux, но для этого сайта это менее 1% посетителей, и большинство из них, вероятно, боты. Таким образом, это отвечает на первоначальные вопросы «Эта установка вызывает предупреждения в Mozilla Firefox или нет» и «Эта цепочка сертификатов SSL разорвана или нет?».

Поэтому вопрос заключается в том, как мне узнать, какие сертификаты мне нужно поместить в файл ssl.ca, чтобы Apache мог обслуживать их, чтобы Firefox <36 не задохнулся?

PS: Как примечание: Firefox 36, который я использовал для тестирования сертификата, был совершенно новым. Нет никаких шансов, что он не жаловался, потому что он загрузил промежуточный сертификат во время предыдущего посещения сайта, который использует ту же цепочку .

Gaia
источник
1
Не обязательно - в любом случае, если вы можете ответить на свой вопрос, который вам предлагается, сделать это :)
BE77Y
Да, я ответил на этот вопрос, но было бы более полезно повторно спросить, как исправить, а не сломано. Это нормально?
Gaia
1
Абсолютно. Здесь также актуальны ответы (с момента их публикации они были правы, верно?)
канадец Лука
@Gaia: ах, хорошо - теперь я понимаю, что ты имеешь в виду. Я не на 100% обдумываю то, что считается наилучшей практикой в ​​этом отношении, но мой инстинкт должен был бы обновить ваш вопрос, включив в него «и как это следует решить?» В вашем случае, согласно ответу Штеффена Ульриха, сертификат «COMODO RSA Certification Authority» отсутствует в цепочке - вы можете избежать любых потенциальных клиентских ошибок, но включив их в свою цепочку. Это действительно считается плохой практикой, так как оно добавляет потенциально ненужные накладные расходы на рукопожатие - в противном случае оно не оказывает вредного воздействия.
BE77Y
В дополнение к вышесказанному, стоит также отметить, что большинство, если не все современные клиенты, должны быть абсолютно в порядке с настройкой, как она есть в настоящее время (согласно тесту SSLlabs)
BE77Y

Ответы:

8

Если цепочка достаточно, зависит от хранилища CA клиента. Похоже, что Firefox и Google Chrome включили сертификат для «COMODO RSA Certification Authority» в конце 2014 года. Для Internet Explorer это, вероятно, зависит от базовой ОС. Возможно, CA еще не включен в хранилища доверия, используемые не браузерами, то есть сканерами, мобильными приложениями и т. Д.

В любом случае цепочка не полностью корректна, как видно из отчета SSLLabs :

  • Один путь доверия требует, чтобы новый CA доверял браузеру. В этом случае вы все еще отправляете новый CA, что неверно, потому что доверенные CA должны быть встроены, а не включены в цепочку.
  • Другой путь доверия является неполным, то есть он требует дополнительной загрузки. Некоторые браузеры, такие как Google Chrome, делают эту загрузку, в то время как другие браузеры и не браузеры ожидают, что все необходимые сертификаты будут содержаться в поставляемой цепочке. Таким образом, большинство браузеров и приложений, которые не имеют нового встроенного CA, не смогут работать с этим сайтом.
Штеффен Ульрих
источник
У меня сложилось впечатление, что Chrome и IE используют хранилище сертификатов Windows. Вы уверены, что Chrome имеет свой собственный дополнительный магазин?
Gaia
В SSLlabs указано «Chain questions = None», но подробный анализ цепочки я вижу ниже.
Gaia
1
FWIW, Chrome под OS X действительно использует хранилище сертификатов ОС @SteffenUllrich.
BE77Y
1
@Gaia: не забывайте о мобильных клиентах, у них есть собственный магазин сертификатов, который также может отличаться в разных версиях Android.
Штеффен Ульрих
1
@Gaia: выберите второй путь доверия, показанный SSLLabs, и просто добавьте недостающий сертификат цепочки Затем эта цепочка может быть проверена как браузерами, которые имеют более новый CA, так и теми, которые еще не имеют этого CA.
Штеффен Ульрих
8

Я связался с Comodo и скачал с них файл bundle.crt. Я переименовал его в ssl.ca в соответствии с настройками этого сервера, и теперь сертификат проходит все тесты. Chain issues = Contains anchorУведомление не является проблемой (см . Ниже)

SSL Labs, широко рассматриваемый как наиболее полный тест, теперь показывает Chain issues = Contains anchor, тогда как раньше его показывали Chain issues = None(в то время как другие показали проблему с цепочкой). Это действительно не проблема ( 1 , 2 ), за исключением 1 КБ, которые сервер отправляет клиенту.

Мой вывод

  1. Игнорируйте тест SSL Labs, где говорится Chain issues = Contains anchorИЛИ удалите корневой сертификат из файла комплекта (см. Этот комментарий ниже).

  2. Всегда проводите дополнительный тест по крайней мере на одном из трех других сайтов тестирования ( 1 , 2 , 3 ), чтобы убедиться, что ваша цепочка действительно в порядке, когда SSL Labs говорит Chain issues = None.

Gaia
источник
2
На самом деле нет никакого смысла включать фактический «якорный» / «корневой» сертификат. Однако вы очень хотите получить промежуточный сертификат. Я предполагаю, что у вас изначально не было промежуточного сертификата, что вызвало проблемы.
Хокан Линдквист
@ HåkanLindqvist Итак, я должен расшифровать сертификаты, выяснить, какой из них является корневым сертификатом, и удалить его из цепочки?
Gaia
1
Я бы предложил сделать это, даже если это не такая серьезная проблема, как отсутствие промежуточных сертификатов (это просто немного расточительно). Fwiw, SSL-тест Qualy показывает, что это 02faf3e291435468607857694df5e45b68851868ненужно.
Хокан Линдквист
@ HåkanLindqvist, используя, openssl x509 -fingerprint -in ssl.caя прибил, что часть файла, у которой есть отпечаток пальца, 02faf3e291435468607857694df5e45b68851868была первым PEM. Я удалил его, и теперь я получаю i.imgur.com/1iG2UCz.png и i.imgur.com/m8gYbdG.png (ОШИБКА OCSP: Сбой запроса с состоянием OCSP: 6 [ ocsp.comodoca.com] )
Gaia
3
Ваш вывод относительно предупреждения «содержит привязку» действителен - этот ответ на Security.SE стоит прочитать относительно; В итоге, нет никаких проблем с отправкой: security.stackexchange.com/a/24566/7043
Крис J