Перенаправление Apache с поддомена ssl не работает

Я пытаюсь перенаправить весь трафик на 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 на основной домен?

Скажите, пожалуйста, что я делаю не так.

Большое спасибо.

2
задан 31 December 2017 в 21:00
2 ответа

Учитывая, что кажется, что 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.

1
ответ дан 3 December 2019 в 14:03

Проблема не может быть решена с помощью текущей версии Let's Encrypt. В 2018 они выпустят новую версию с поддоменом с подстановочными знаками, что мне и нужно.

Спасибо всем за ваши усилия.

-1
ответ дан 3 December 2019 в 14:03

Теги

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