Чому apache httpd говорить мені, що мої назви на базі імен працюють лише з увімкненими веб-переглядачами (RFC 4366)


9

Чому apache видає мені це повідомлення про помилку у своїх журналах? Це хибний позитив?

[warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)

Я нещодавно оновив з Centos 5.7 до 6.3, а тим самим до нової версії httpd. Я завжди робив свої конфігурації virtualhost ssl, як показано нижче. Якщо всі домени, які мають один і той же сертифікат (в основному / завжди символи підстановки), мають однаковий ip. Але ніколи раніше не отримували цього повідомлення про помилку (чи це я, можливо, я недостатньо шукав у своїх журналах?) З того, що я дізнався, це повинно працювати без SNI (Вказівка ​​імені сервера)

Ось відповідні частини мого файлу httpd.conf. Без цього VirtualHost я не отримую повідомлення про помилку.

NameVirtualHost 10.101.0.135:443

<VirtualHost 10.101.0.135:443>
  ServerName sub1.domain.com

  SSLEngine on
  SSLProtocol -all +SSLv3 +TLSv1
  SSLCipherSuite ALL:!aNull:!EDH:!DH:!ADH:!eNull:!LOW:!EXP:RC4+RSA+SHA1:+HIGH:+MEDIUM
  SSLCertificateFile /opt/RootLive/etc/ssl/ssl.crt/wild.fareoffice.com.crt
  SSLCertificateKeyFile /opt/RootLive/etc/ssl/ssl.key/wild.fareoffice.com.key
  SSLCertificateChainFile /opt/RootLive/etc/ssl/ca/geotrust-ca.pem
</VirtualHost>

<VirtualHost 10.101.0.135:443>
  ServerName sub2.domain.com

  SSLEngine on
  SSLProtocol -all +SSLv3 +TLSv1
  SSLCipherSuite ALL:!aNull:!EDH:!DH:!ADH:!eNull:!LOW:!EXP:RC4+RSA+SHA1:+HIGH:+MEDIUM
  SSLCertificateFile /opt/RootLive/etc/ssl/ssl.crt/wild.fareoffice.com.crt
  SSLCertificateKeyFile /opt/RootLive/etc/ssl/ssl.key/wild.fareoffice.com.key
  SSLCertificateChainFile /opt/RootLive/etc/ssl/ca/geotrust-ca.pem
</VirtualHost>

Відповіді:


7

Це тому, що ваша директива VirtualHost не відповідає вашій директиві ServerName та / або CN сертифіката. Усі три повинні бути ідентичними, якщо ви не маєте сертифікату підстановки, де нединамічні частини повинні бути однаковими.


Тож відповідь тут полягає в тому, щоб змінити <VirtualHost 10.101.0.135:443>рядок, який буде <VirtualHost sub2.domain.com:443>? Потенційно?
MichaelJones

@MichaelJones це вирішило проблему?
Фернандо Сантьяго

@FernandoSantiago Зараз я плачу за різні IP-адреси для своїх віртуальних хостів, оскільки я визнав SNI недостатньо надійною. І я маю ці ip-адреси у своїх VirtualHostдеклараціях.
MichaelJones

1
Це прекрасно вирішило мою проблему. Я використовував VirtualHostпідстановку, але ServerNameдиректива відповідає сертифікату CN. Усі 3 відповідність та віола! PS: Ця відповідь serverfault.com/questions/578061/… розповідає, як отримати CN, який ви ввели у свій сертифікат RSA
3bdalla

3

Це не помилка, це попередження.

І ви отримуєте це тому, що 1) ви оновили версію Apache і 2) у вас є 2 SSL VirtualHosts, використовуючи однаковий точний IP-адресу (на відміну від використання 2-х IP-адрес).

Оскільки ви ділитесь IP-адресою, браузери без підтримки SNI просто отримають перший веб-сайт і ніколи другий.


Браузери без SNI отримають сертифікат, налаштований для першого веб-сайту, але щоб насправді відобразити їх на vhost для обслуговування запиту, Hostзаголовок перевіряється нормально.
Шейн Мадден

@ShaneMadden, я не вірю, що це правильно, оскільки хост: заголовок НЕ перевіряється перед тим, як встановлено з'єднання SSL. І в цьому вся суть підтримки СНІ. Або потрібно 1 IP на SSL VH в іншому випадку. Отже без SNI Apache за замовчуванням перший VH, знайдений з цією IP-адресою, заголовок Host: практично ігнорується.
праворуч

... Інакше ви можете зробити 100s SSL NameBasedVirtualHosts на одній єдиній IP-адресі, і ми знаємо, що це неправда (без підтримки SNI від сервера та клієнта).
rightstuff

4
Otherwise you could do 100s of SSL NameBasedVirtualHosts on 1 single IP address, and we know that's not true (without SNI support by server and client)Ти можеш. Нормальне використання цього полягає в тому випадку, коли всі мають однаковий сертифікат, макіяж або інший сертифікат імені. Але скажіть, у вас є два vhosts із власними сертифікатами SSL - domain1.com та domain2.com, спочатку налаштовані domain1.com. Браузер, який не підтримує SNI, запитує domain2.com - вони отримують помилку невідповідності домену сертифіката, оскільки їм надіслали cert домену1, але якщо натиснути його, вони отримують вміст domain2.
Шейн Мадден

1
Якби заголовок хоста був проігнорований, навіть простий і широко розгорнутий випадок "підстановочного сертифіката з декількома іменами на основі імен" порушиться. У всякому разі, ось кілька прикладів питань, на які я відповів тут, де відображена така поведінка; serverfault.com/q/292637 serverfault.com/q/330212
Шейн Мадден
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.