Два сертификата безопасности на одном IP-адресе с Apache mod_gnutls

Насколько я понимаю, существует проблема с наличием нескольких сертификатов на одном IP-адресе, поскольку SSL согласовывается до того, как произойдет HTTP, однако, чтобы обойти это, мы можем сделать указание имени службы (SNI) в TLS. Согласно странице википедии SNI, оба модуля Apache 2 mod_ssl и mod_gnutls поддерживают это расширение, а также многочисленные веб-клиенты.

Я пытался использовать mod_gnutls на centos 5. У меня есть два отдельных сертификата для двух доменов, но только 1 IP. Каждый работает независимо, но когда я помещаю оба сразу в конфигурацию, будет работать только первый. Любое https-соединение на домене 2 показывает сертификат домена 1.

Моя конфигурация выглядит так:

Listen 443
NameVirtualHost *:443

<VirtualHost *:443>

ServerName www.domain1.com
ServerAlias www.domain1.com
DocumentRoot /var/www/html/domain1

GnuTLSEnable on
GnuTLSCertificateFile /etc/pki/tls/certs/www.domain1.crt
GnuTLSKeyFile /etc/pki/tls/domain1/private.key

</VirtualHost>


<VirtualHost *:443>

DocumentRoot /var/www/html/domain2
ServerName www.domain2.com
ServerAlias www.domain2.com

GnuTLSEnable on
GnuTLSCertificateFile /etc/pki/tls/certs/domain2.crt
GnuTLSKeyFile /etc/pki/tls/domain2/private.key

</VirtualHost>

Любые идеи? На самом деле ломал голову над этим.

Большое спасибо


person Mark Williams    schedule 29.07.2014    source источник
comment
Согласно виртуальному хосту имени Apache с SSL, вам необходимо использовать виртуальные хосты на основе IP для SNI. Кроме того, как вы тестируете конфигурацию?   -  person jww    schedule 29.07.2014
comment
Как сказал jww, уверены ли вы, что клиент, который вы используете для тестирования, поддерживает SNI? Вы можете попробовать openssl s_client -connect ‹ip›: ‹port› -servername ‹the-server-name›   -  person Remi Gacogne    schedule 31.07.2014