Другой сайт обслуживается на многосайтовом сервере Apache, когда был введен второй сертификат SSL

У меня есть служба Apache, работающая на сервере Ubuntu с двумя совершенно разными веб-сайтами, то есть разными доменами.

Каждый из них имеет отдельную конфигурацию VirtualHost, и до недавнего времени только один из них обслуживался по HTTPS.

Сегодня утром, когда я представил новый сертификат SSL для второго сайта и соответствующим образом изменил конфигурацию VirtualHost (вместо этого прослушиваю порт 443, указываю его на файлы сертификатов и т. Д.), Вместо того, чтобы обслуживать второй сайт, как ожидалось, он обслуживал вместо этого исходный сайт HTTPS.

Если бы кто-нибудь мог мне помочь, я был бы очень признателен.

Вот (очищенные) файлы VirtualHost:

Первый сайт - тот, который выполняет переопределение

<VirtualHost *:443>

ServerAdmin webmaster@localhost
ServerName www.first-site.com
ServerAlias some similar names
DocumentRoot /var/www/first-site.com/

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

#SSL config
SSLEngine on
SSLProtocol -All +TLSv1.2
SSLCertificateFile /etc/apache2/ssl/first-site/firstsite-certificate.crt
SSLCertificateKeyFile /etc/apache2/ssl/first-site/firstsite.key
SSLCertificateChainFile /etc/apache2/ssl/first-site/firstsitechain.crt

.....More site-specific rules.....

Второй сайт - тот, который все время переопределяется

<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName second-site.com
ServerAlias some similar names
DocumentRoot /var/www/secondsite/htdocs
ErrorLog /var/log/apache2/secondsite-error.log
CustomLog /var/log/apache2/secondsite-access.log combined

SSLEngine on
SSLProtocol -All +TLSv1.2
SSLCertificateFile /etc/apache2/ssl/secondsite/secondsite.crt
SSLCertificateKeyFile /etc/apache2/ssl/secondsite/secondsite.key
SSLCertificateChainFile /etc/apache2/ssl/secondsite/secondsitechain.crt

.....More site-specific rules.....

Я просмотрел журналы, но это не ' t появляется. Может, это просто мой греп-фу ...

Кто-нибудь испытывал нечто подобное? Нужна дополнительная информация?

0
18.10.2016, 14:45
1 ответ

Ключевое слово: SNI (Server Name Indication)

Похоже, что либо ваш сервер, либо ваш клиент не поддерживает SNI, смотрите

https://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI

Чтобы проверить, возвращает ли ваш сервер информацию заголовка SNI, вы можете попробовать

openssl s_client -servername www.SERVERNAME.com -tlsextdebug -connect www.YOURSERVER.com:443 2>/dev/null | grep "server name"

смотрите https://serverfault.com/questions/506177/how-can-i-detect-if-a-server-is-using-sni-for-https

Вы также можете попробовать такой тест сервера SSL https://www.ssllabs.com/ssltest/. "Handshake Simulation" должен дать вам что-то вроде этого для старых клиентов:

Android 2.3.7 No SNI Incorrect certificate because this client doesn't support SNI

но соответствующие сертификаты для более новых клиентов.

BTW здесь у кого-то была похожая проблема https://serverfault.com/questions/510132/apache-sni-namevhosts-always-route-to-first-virtualhost-entry

2
28.01.2020, 02:34

Теги

Похожие вопросы