Я пытаюсь перенаправить весь трафик на https и все поддомены на основной домен и не могу понять это правильно. Я использую Ubuntu 14.04 с последней версией apache2.
Я настроил виртуальный хост для порта 80, чтобы перенаправить весь трафик на https:
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
и настройте виртуальный хост ssl для перенаправления всех поддоменов в основной домен:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias *.example.com
DocumentRoot /var/www/example.com/public_html/
ErrorLog /var/www/example.com/logs/error.log
CustomLog /var/www/example.com/logs/access.log combined
Include /etc/letsencrypt/options-ssl-apache.conf
Include /etc/letsencrypt/options-ssl-apache.conf
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/example.com-0001/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com-0001/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/example.com-0001/chain.pem
Redirect permanent / https://example.com
</VirtualHost>
</IfModule>
Результат такой:
РАБОТАЕТ http://example.com к https://example.com
РАБОТАЕТ http://anything.example.com к https://example.com
НЕ РАБОТАЕТ https://anything.example.com к https://example.com
Вопрос: как перенаправить поддомен ssl на основной домен?
Подскажите пожалуйста, что я делаю не так.
Большое спасибо.
Учитывая, что кажется, что Let's Encrypt будет только начать выдача подстановочных сертификатов в январе 2018 г., и ваш сервер настроен ранее, похоже, что вы не используете SSL-сертификат с подстановочными знаками.
Чтобы связаться с https
даже для перенаправления или обработки вашего «псевдонима» у вас должен быть действующий сертификат SSL для любого домена, который отправляет клиент.
Рукопожатие SSL происходит прежде всего в сервере Apache обрабатывается. Другими словами, если вы не используете SSL-сертификат с подстановочными знаками, квитирование SSL не будет выполнено для https://anything.example.com
перед у файла конфигурации Apache когда-либо есть возможность обработать псевдоним.
Независимо от того, что еще может быть проблемой, это необходимо исправить до того, как, если потребуется, будет поставлен какой-либо дополнительный диагноз. Например, если желаемое поведение таково, что https://anything.example.com
быть "перенаправленным" на http://example.com
вам, вероятно, придется использовать mod_rewrite
соответствие условий как RedirectMatch
директива сопоставляется только с URL-путем, и использование ServerAlias
создаст нужно соответствует для обработки первоначального запроса, но не будет пытаться «переписать» или «перенаправить» запрос на другой желаемый URL.
Проблема не может быть решена с текущей версией Let's Encrypt. В 2018 они выпустят новую версию с поддоменом с подстановочными знаками, что мне и нужно.
Спасибо всем за ваши усилия.