_default_ VirtualHost накладається на порт 443, перший має перевагу


64

У мене два рубіни на рейках 3 програми, що працюють на одному сервері (ubuntu 10.04), обидва з SSL.

Ось мій конфігураційний файл apache:

<VirtualHost *:80>
ServerName example1.com
DocumentRoot /home/me/example1/production/current/public
</VirtualHost>
<VirtualHost *:443>
ServerName example1.com
DocumentRoot /home/me/example1/production/current/public
SSLEngine on
SSLCertificateFile /home/me/example1/production/shared/example1.crt
SSLCertificateKeyFile /home/me/example1/production/shared/example1.key
SSLCertificateChainFile /home/me/example1/production/shared/gd_bundle.crt
SSLProtocol -all +TLSv1 +SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM
</VirtualHost>


<VirtualHost *:80>
ServerName example2.com
DocumentRoot /home/me/example2/production/current/public
</VirtualHost>
<VirtualHost *:443>
ServerName example2.com
DocumentRoot /home/me/example2/production/current/public
SSLEngine on
SSLCertificateFile /home/me/example2/production/shared/iwanto.crt
SSLCertificateKeyFile /home/me/example2/production/shared/iwanto.key
SSLCertificateChainFile /home/me/example2/production/shared/gd_bundle.crt
SSLProtocol -all +TLSv1 +SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM
</VirtualHost>

Що питання:

Після перезавантаження мого сервера він дає мені такий вихід:

 * Restarting web server apache2                                   
 [Sun Jun 17 17:57:49 2012] [warn] _default_ VirtualHost overlap on port 443, the first has precedence
 ... waiting [Sun Jun 17 17:57:50 2012] [warn] _default_ VirtualHost overlap on port 443, the first has precedence

На Google, чому ця проблема виходить, у мене з’явилося щось подібне:

Ви не можете використовувати віртуальні хости на основі імен за допомогою SSL, оскільки рукостискання SSL (коли браузер приймає сертифікат захищеного веб-сервера) відбувається перед запитом HTTP, який ідентифікує відповідний віртуальний хост на основі імені. Якщо ви плануєте використовувати віртуальні хости на основі імен, пам’ятайте, що вони працюють лише з вашим незахищеним веб-сервером.

Але не в змозі зрозуміти, як запустити два програми ssl на одному сервері.

Чи може мені хтось допомогти?


5
У _default_наданому конфігурації у вас немає жодного vhosts, тому вони в іншому місці. Який результат apache2ctl -S? (Так, можна запустити декілька vhosts на основі імен SSL на різних сертифікатах, якщо у вас немає потреби підтримувати браузери клієнтів під керуванням Windows XP або будь-які інші, які не підтримують TLS SNI. Чи потрібно підтримувати Windows XP?)
Шейн Мадден

Відповіді:


87

Майже там!

Додайте це до ports.conf або http.conf і збережіть свою вище конфігурацію.

<IfModule mod_ssl.c>
    # If you add NameVirtualHost *:443 here, you will also have to change
    # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
    # to <VirtualHost *:443>
    # Server Name Indication for SSL named virtual hosts is currently not
    # supported by MSIE on Windows XP.

    # !important below!
    NameVirtualHost *:443 
    Listen 443
</IfModule>

Коментар "#! Важливо! Потрібно видалити або перенести на інший рядок. Інакше дякую вам за інтерпретацію цього неточного повідомлення про помилку для мене.
flickerfly,

3
Це більше не працює в Apache 2.4.7
злочин

Дякую. Я виявив, що мені потрібно прокоментувати Слухати 443, тому що це також використовується в моїх індивідуальних
конфігураціях conf.d

3

Це також допомогло мені виконати "/ usr / sbin / apachectl -S". Цей вихід команди показує ДВІ файли "ssl.conf" на одному шляху. Перемістіть або видаліть файл порушника, і все повинно працювати після.


1

Ви можете додати це до конфігурації apache за адресою /etc/apache2/ports.conf:

<IfModule mod_ssl.c>                
    Listen 443                      
    <IfModule !mod_authz_core.c>    
        # Apache 2.2                
        NameVirtualHost *:443       
    </IfModule>                     
</IfModule>                         

(Це працює в обох: apache 2.2 і 2.4)

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