Я запускаю Apache 2.2 на Ubuntu 14.04.4 LTS на сервере Linode. У меня есть несколько доменов, размещенных на этом компьютере (только с 1 IP-адресом).
У меня есть домен tbw.com, размещенный здесь, для которого у меня есть сертификат SSL, и для которого я хочу, чтобы все http://tbw.com и http://www.tbw.com запросы, которые будут перенаправлены на https://www.tbw.com (это происходит в текущей конфигурации)
У меня также есть rf.com и другие сайты, которые отлично работают как http://rf.com и http://www.rf.com
Однако, когда я пытаюсь получить доступ https://www.rf.com, выдает ошибку:
Your connection is not secure
...
www.rf.com uses an invalid security certificate.
The certificate is only valid for the following names: www.tbw.com, tbw.com
Error code: SSL_ERROR_BAD_CERT_DOMAIN
Я просмотрел следующие сообщения, но думаю, что ответы устарели, потому что теперь существует SNI (указание имени сервера).
Несколько доменов с SSL на одном IP
Как предотвратить доступ к https: // из доменов без сертификата?
Мои файлы конфигурации:
/etc/apache2/apache2.conf
...
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
...
/etc/apache2/ports.conf
NameVirtualHost *:80
NameVirtualHost *:443
Listen 80
...
/etc/apache2/sites-available/tbw.com.conf
<VirtualHost *:80>
ServerName tbw.com
ServerAlias www.tbw.com
DocumentRoot /var/www/html/tbw.com/public_html
Redirect permanent / https://www.tbw.com/
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost www.tbw.com:443>
ServerAdmin yo@tbw.com
ServerName www.tbw.com
DocumentRoot /var/www/html/tbw.com/public_html
# Log file locations
LogLevel warn
ErrorLog /var/www/html/tbw.com/log/error.log
CustomLog /var/www/html/tbw.com/log/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/tbw.com/www_tbw_com.crt
SSLCertificateKeyFile /etc/apache2/ssl/tbw.com/tbw.key
SSLCertificateChainFile /etc/apache2/ssl/tbw.com/www_tbw_com.ca-bundle
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
Я не хочу, чтобы это происходило - я бы предпочел, чтобы он показывал стандартную / ожидаемую ошибку «Ошибка безопасного соединения» для доменов без SSL.
В этом случае вы должны настроить apache так, чтобы он не принимал клиентов, не поддерживающих SNI, т.е. SSLStrictSNIVHostCheck on
. В этом случае виртуальные хосты без настроенного сертификата должны вызывать ошибку у клиента, например, неверное имя сервера или ошибку рукопожатия (в зависимости от браузера).
Могу ли я установить другие домены с сертификатами SSL на том же компьютере (с тем же IP-адресом)?
Пока клиент использует SNI (что и делают все современные браузеры), это должно быть возможно.