Я пытаюсь перенаправить весь трафик на 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: // пример. 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 они выпустят новую версию с поддоменом с подстановочными знаками, что мне и нужно.
Спасибо всем за ваши усилия.