Я перемещаю сайт с одного сервера на другой и использую его текущий и все еще действующий сертификат SSL. Машина, на которой я работаю, - это сервер Ubuntu 14.04. Я установил свой обычный файл виртуального хоста, назовем его my_domain.conf. Вот его содержание:
#omitting the major/minor signs near VirtualHost VirtualHost *:443 ServerAdmin webmaster@mydomain.com ServerName mydomain.com ServerAlias www.mydomain.com SSLEngine on SSLCertificateFile /etc/ssl/certs/mydomain.com.crt SSLCertificateKeyFile /etc/ssl/private/mydomain.com.key DocumentRoot /var/www/html/mydomain.com/public ErrorLog /var/log/apache2/mydomain-error.log TransferLog /var/log/apache2/mydomain-access.log /VirtualHost
Теперь, когда я набираю www.mydomain.com в браузере, VirtualHost работает. Но когда я набираю mydomain.com, этого не происходит. Это нужно и заказчику, и веб-дизайнеру, поэтому я не могу этого избежать.
Я попытался
[ssl:warn] [pid 6558] AH02292: Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
Ничего не изменилось, и я действительно не могу понять, почему это происходит
РЕДАКТИРОВАТЬ: я забыл добавить, «это не работает», я имею в виду, что конфигурационный файл виртуального хоста пропущен, и браузер переводит меня в корень документа apache2 по умолчанию
Тоже самое. Я отказался от попыток сделать ServerAlias на хосте SSL. Мое решение:
VirtualHost *:443
ServerAdmin webmaster@mydomain.com
ServerName mydomain.com
...
/VirtualHost
VirtualHost *:443
ServerAdmin webmaster@mydomain.com
ServerName www.mydomain.com
...//same as above
/VirtualHost
Я знаю, что это некрасиво, но работает - без головной боли.
Попробуйте использовать только ServerAlias Like:
ServerAdmin webmaster@example.com
ServerAlias example.com
ServerAlias www.example.com
DocumentRoot /var/www/html/
В настоящее время я использую это, и мои сайты работают отлично.
У меня была очень похожая проблема, и я понял ее, используя уровень журнала отладки. Я не отключал определение виртуального хоста по умолчанию (ssl.conf). Там не было DocumentRoot, ServerName или Alias, но по какой-то причине эта конфигурация конфликтовала с моим виртуальным хостом. Чтобы решить эту проблему, просто прокомментируйте весь раздел виртуального хоста по умолчанию:
#<VirtualHost _defaulr_:443>
#...
#</VirtualHost>
Скопируйте данные сертификата на vhost или за его пределами (для глобального использования) и перезапустите apache. Мне это помогло.
Сообщение «Виртуальные хосты SSL на основе имени работают только для клиентов с поддержкой указания имени сервера TLS» относится к отсутствию поддержки SNI в веб-клиенте (т. Е. В вашем браузере). Другими словами, это сообщение обычно не указывает на проблему с настройкой вашего сервера, а скорее является предупреждением о том, что некоторые браузеры не смогут получить доступ к серверу. Для наглядности это только «информационное» сообщение и не указывает на то, что что-то не так.
Примечательно, что многие старые браузеры не поддерживают SNI, и в результате не могут согласовывать альтернативные имена субъектов (SAN) в многодоменном сертификате. Чтобы получить список браузеров или просто дополнительную информацию, вы можете выполнить поиск в Интернете по запросу «Поддержка SNI», но на самом деле у вас должна быть довольно веская причина отказаться от использования многодоменного сертификата, чтобы просто совместим со старым браузером.
Вам, вероятно, нужно поднять свой LogLevel
чтобы получить более подробную информацию, прежде чем кто-либо сможет помочь вам найти проблему.