OpenSSL повертає інший сертифікат SSL до показаного Chrome


13

При запиті CDN-адреси Sparkfun за допомогою OpenSSL із наступною командою:

openssl s_client -showcerts -connect dlnmh9ip6v2uc.cloudfront.net:443

Загальне ім'я, повернене в сертифікаті, - *.sparkfun.comце не вдається підтвердити, але якщо ви завантажуєте хост у Chrome, відображається загальна назва*.cloudfront.net

Що тут відбувається?

Це спричиняє проблему, оскільки оточення, в якому я перебуваю в проксі-сервері через Squid SSL_Bump, генерує сертифікат, підписаний моїм місцевим довіреним центром CA для домену. Це працює для всіх доменів, але вищезазначене, оскільки CN не відповідає, оскільки новий серт генерується за допомогою OpenSSL.

EDIT - Я перевірив, що те саме відбувається з OpenSSL на сервері у віддаленому центрі обробки даних, який має пряме з'єднання з Інтернетом, не маючи проксі-серверів або фільтрування.

EDIT - Проблема пов’язана з SNI, як прийнято, але щоб заповнити інформацію про те, чому це викликає проблему з Squid та SSL_Bump:

Цей проект не підтримуватиме переадресацію інформації індикатора імені SSL (SNI) на початковий сервер і ускладнить таку підтримку. Однак переадресація SNI має свої серйозні проблеми (що виходять за межі цього документа), які значно переважають додаткові труднощі з переадресацією.

Взято з: http://wiki.squid-cache.org/Features/BumpSslServerFirst

Відповіді:


23

CloudFront використовує SNI - спосіб використання декількох сертифікатів в одному IP. Усі сучасні браузери підтримують це, як і команда opens_sli_slilient, але s_client не робить це магічно. Ви повинні сказати йому, щоб використовувати його:

openssl s_client -servername dlnmh9ip6v2uc.cloudfront.net  -connect dlnmh9ip6v2uc.cloudfront.net:443 -showcerts

2
Yaaay Dennis, це мій " ооо, я цього не знав " відсортований для SF сьогодні, і це ще не 9 ранку! +1 від мене.
MadHatter

9

Chrome підтримує SNI , повідомляючи серверу, який сертифікат надіслати. s_clientКоманда не робить.

Там більше деталей використання CloudFront про SNI тут .

Коли ви використовуєте спеціальний SSL SNI, деякі користувачі можуть не мати доступу до вашого вмісту, оскільки деякі старі браузери не підтримують SNI і не зможуть встановити з'єднання з CloudFront для завантаження HTTPS-версії вашого вмісту. Для отримання додаткової інформації про SNI, включаючи перелік підтримуваних браузерів, відвідайте нашу сторінку поширених запитань .

і:

Спеціальний SSL SNI спирається на розширення SNI протоколу безпеки транспортного шару, що дозволяє декільком доменам обслуговувати трафік SSL через одну і ту ж IP-адресу, включаючи глядачів імені хоста, які намагаються підключитися. Як і у спеціалізованому SSL для IP-адреси, CloudFront доставляє вміст з кожного краю Amazon CloudFront та з тією ж безпекою, що і спеціалізована функція SSL для спеціальної IP-адреси. SNI користувальницький SSL працює з більшістю сучасних браузерів, включаючи Chrome версії 6 та новіших версій (працює на Windows XP та новіших версіях OS X 10.5.7 та новіших версій), Safari версії 3 та новіших версій (працює на Windows Vista та новіших версіях чи Mac OS X 10.5. 6. і пізніших версій), Firefox 2.0 та новіших версій та Internet Explorer 7 та новіших версій (працює на Windows Vista та новіших версіях). Старі браузери, які не підтримують SNI, не можуть встановити з'єднання з CloudFront для завантаження HTTPS версії вашого вмісту.


s_client підтримує SNI просто чудово ...
Денніс Каарсемейкер

+1 від мене через відмінну документацію.
MadHatter

Я не сказав, s_clientщо не підтримую CLI. Я сказав, що s_clientкоманда (в ОП) не відповідає.
Девід Шварц

@DavidSchwartz - Насправді мій клієнт OpenSSL підтримує SNI, і я можу перевірити, використовуючи інформацію, описану тут.
Джеффрі

@Geoffrey Я згоден. Це команда в ОП, яка не підтримує SNI.
Девід Шварц
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.