Помилка "Сервер повинен бути відомий SSL, але не має налаштованого сертифіката [Підказка: SSLCertificateFile]"


21

Після нещодавнього оновлення Apache2 до версії 2.2.31 я виявив дивну поведінку в налаштуваннях SSL VirtualHost.

Кілька веб-сайтів, на яких я розміщував, демонстрували сертифікат для хоста за замовчуванням, навіть якщо клієнт Server Name Identificationобізнаний, і це сталося лише з кількома з них. Це відображається як загальне паспортне попередження Firefox / Chrome про те, що ви, можливо, шахрайства, якщо ви переглядаєте домашній банківський бізнес, але це просто не було так.

Щоб було зрозуміло, якщо сервер host.hostingdomain.orgмає власну SSL, намагаючись отримати доступ до https://www.hostedsite.orgсертифікату звітів для host.hostingdomain.org, але декілька https://www.hostedsite.meповідомили про правильний сертифікат.

Усі сайти розміщуються на одній і тій же IP-адресі, на порту 443. Правда полягає в тому, що VirtualHosting працює на HTTP-стороні і автоматично перенаправляє клієнтів, що знають SNI, до SSL, тому він сумісний із зворотними клієнтами, які не знають SNI.

Вивчаючи журнали помилок для порушення VirtualHosts, показано наступний текст

[Tue Dec 25 16:02:45 2012] [error] Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] (/path/to/www.site.org.conf:20)

і насправді vhost був правильно налаштований з SSLCertificateFile.

Питання очевидне: як це виправити?

Відповіді:


38

Буває, що це може бути помилка в останній версії Apache.

Рішення 1: перехід на останню стабільну

Рішення 2: відредагувати listen.conf

Замініть Listen *:443(або Listen 443відповідно до вашої установки) наListen *:443 http

Кредит


1
Дякую, що вказали на це! Ви врятували мене багато цікавого навколо ... Цікаво, чому апач ускладнює життя !?
tftd

2
Рішення 2: чи слід httpd.conf не прослуховувати.conf
zzapper

1
Зауважте, це сталося зі мною сьогодні вранці ... в кінцевому підсумку мені потрібно було додати той "http" до посилання для прослуховування в /etc/httpd/conf.d/ssl.conf - о, мені не довелося знижувати версію ...
Скотт

Рішення є альтернативними, вам не потрібно знижувати версію, якщо додавати Listen.conf
usr-local-ΕΨΗΕΛΩΝ

10

У мене була така ж точна проблема, і те, що працювало для мене, було неймовірно просто

редагувати /etc/apache2/ports.conf (для ubuntu або httpd.conf)

змініть "Слухати 443" на "Слухати 443 http" під ssl_module


Це вже у прийнятій відповіді.
Свен

2
Прийнята відповідь здається застарілою. Ця відповідь була більш корисною і точною. +1
Параг

Ця відповідь застосовна для apache на моєму стеку ламп apache2.4, ubuntu. Інша відповідь - "прослухати.конф" - має бути ports.conf
Нік

2

Ще одне рішення для цього - переконатися, що всі ваші: 443 пристрасті включають конфігурацію TLS.

Ця проблема була нещодавно представлена ​​в Debian wheezy, і я отримав рішення від http://blog.noizeramp.com/2010/10/03/apache-2-and-ssl-configuration/ .


Це була моя проблема. Я дублював vhost в моєму, httpd.confале не зміг включити рядки, що вказують конфігурацію TLS. Додавання ще раз налаштувань TLS (SSLEngine, SSLCipherSuite, SSLCertificateFile та SSLCertificateKeyFile) вирішило проблему.
rinogo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.