Как использовать на том же Apache2 Server 2 разных сертификата с использованием VirtualHost? - PullRequest
1 голос
/ 10 октября 2009

Я получаю сертификат от Ганди для домена www.mondomaine.fr Но для sql.mondomaine.fr я хотел использовать самоподписанный SSL-сертификат.

Если я активен sql.mondomaine.fr, www.mondomaine.fr использует самозаверяющий сертификат вместо Gandiś.

Если я дезактивирую sql. все отлично работает.

Как я могу управлять использованием другого сертификата?

Похоже, что первая конфигурация VirtualHost принимает для каждого SSL VirtualHost.

Спасибо за вашу помощь.

Вот моя конфигурация:

Для PHPMyAdmin:

<VirtualHost *:443>
    # Chemin vers les données web
    DocumentRoot /usr/share/phpmyadmin

    ServerName sql.mondomaine.fr

    SSLEngine On
    SSLCertificateFile /etc/apache2/ssl/phpmyadmin.pem
</VirtualHost>

Для mondomaine.fr

<VirtualHost *:443>
    ServerName www.mondomaine.fr
    DocumentRoot /var/www/mondomaine/
    CustomLog /var/log/apache2/secure_access.log combined

    SSLEngine on
    SSLCertificateFile /etc/ssl/mondomaine.fr.crt
    SSLCertificateKeyFile /etc/ssl/mondomaine.fr.key
    SSLCACertificateFile /etc/ssl/GandiStandardSSLCA.pem
    SSLVerifyClient None
</VirtualHost>

Конфигурация правильная, потому что, если первое чтение VirtualHost - PHPMyAdmin.pem, ModSSL использует это, и если это - mondomaine.fr.crt первое VirtualHost, Apache использует это.

Ответы [ 2 ]

2 голосов
/ 10 октября 2009

Вы столкнулись с общей проблемой HTTP через SSL - когда клиент подключается, он указывает, к какому хосту он хочет подключиться, используя HTTP-заголовок Host: но это приходит только после SSL рукопожатие (при предъявлении сертификата) завершено. Последние версии TLS поддерживают расширения (указанные в RFC 4366), которые позволяют клиенту указывать, к какому хосту он будет подключаться во время SSL-рукопожатия, с конкретной целью поддержки vhosts; процитировать RFC:

""» TLS не предоставляет механизм для клиента, чтобы сообщить серверу имя сервера, с которым он связывается. Это может быть желательно для клиентов предоставить эту информацию для облегчения безопасных соединений с серверы, которые размещают несколько «виртуальных» серверов в одном базовом сетевой адрес. "" "

Согласно Википедии, последние версии Firefox, Opera, IE, Chrome и Safari поддерживают это расширение; другие клиенты все равно не отправят расширение, и вам не повезло. Вы также должны использовать как минимум TLS 1.1 для включения поддержки расширений.

Есть некоторая документация о том, как настроить это с помощью Apache; вам может потребоваться перестроить OpenSSL и / или Apache с конкретными параметрами, в зависимости от вашей локальной настройки.

0 голосов
/ 10 октября 2009

Зависит от того, как вы создали свой сертификат. если вы купили его только для поддомен www не будет работать для sql. вам нужно разрешить любой поддомен, но на самом деле эти сертификаты дороже.

С другой стороны, вы можете использовать свой собственный сертификат, вам нужно только знать, что вы вкладываете, когда создаете свой виртуальный хост

<virtualhost XXX.XXX.XXX.XXX:443>
 serverName www.mondomaine.fr
 # Gandiś ceritificate
</virtualhost>

<virtualhost XXX.XXX.XXX.XXX:443>
 serverName sql.mondomaine.fr
 # your own certificate stuff
</virtualhost>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...