Вопрос или проблема
Я немного в затруднении, пытаясь заставить это работать правильно. Коротко говоря, у меня есть файл vhost.conf, и я хочу, чтобы IP сетевой карты разрешался на его собственный сайт. Также я хочу, чтобы мой собственный внутренний домен работал одновременно. С этой частью у меня все в порядке.
Однако я хочу, чтобы пользовательский домен автоматически перенаправлялся на версию ssl (я создал свои собственные самоподписанные ключи).
Вот что у меня сейчас. Закомментированная часть – это то, в чем я не уверен. Должен ли я оставить это как есть, как отдельный элемент ниже или как отдельный конфигурационный файл vhostssl. Раскомментирование действительно ломает это, просто включил для справки.
Я также видел команду
Redirect / https:// custom.domain (пробел добавлен, чтобы это не было гиперссылкой)
и не совсем понял, как это сделать.
Большое спасибо!
<VirtualHost 192.168.44.200:80>
DocumentRoot /srv/www/htdocs/
</VirtualHost>
<VirtualHost 192.168.44.200:80>
ServerName www.custom.domain
ServerAlias custom.domain
DocumentRoot /srv/www/htdocs/domain
</VirtualHost>
#<VirtualHost 192.168.44.200:443>
#ServerName www.custom.domain
#ServerAlias custom.domain
#DocumentRoot /srv/www/htdocs/customdomain
#SSLEngine on
#SSLCertificateFile /etc/apache2/ssl.crts/server.crt
#SSLCertificateKeyFile /etc/apache2/ssl.key/server.key
#</VirtualHost>
<VirtualHost 192.168.44.200:80>
DocumentRoot /srv/www/htdocs/
<VirtualHost 192.168.44.200:80>
ServerName www.custom.domain
ServerAlias custom.domain
DocumentRoot /srv/www/htdocs/domain
#<VirtualHost 192.168.44.200:443>
#ServerName www.custom.domain
#ServerAlias custom.domain
#DocumentRoot /srv/www/htdocs/customdomain
#SSLEngine on
#SSLCertificateFile /etc/apache2/ssl.crts/server.crt
#SSLCertificateKeyFile /etc/apache2/ssl.key/server.key
#
Ответ или решение
Конечно! Давайте разберем вашу конфигурацию виртуальных хостов (vhost) для Apache на openSUSE и сделаем все необходимое для корректной работы с SSL и перенаправлением.
Шаг 1: Настройка виртуальных хостов
Ваша конфигурация по настройке виртуальных хостов в файле vhost.conf
может выглядеть следующим образом:
<VirtualHost 192.168.44.200:80>
ServerName www.custom.domain
ServerAlias custom.domain
DocumentRoot /srv/www/htdocs/domain
# Перенаправление HTTP на HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</VirtualHost>
<VirtualHost 192.168.44.200:443>
ServerName www.custom.domain
ServerAlias custom.domain
DocumentRoot /srv/www/htdocs/domain
SSLEngine on
SSLCertificateFile /etc/apache2/ssl.crts/server.crt
SSLCertificateKeyFile /etc/apache2/ssl.key/server.key
# Здесь вы можете добавить другие настройки для SSL
</VirtualHost>
Объяснение конфигурации
-
Первый виртуальный хост (HTTP):
- Указывает, что сайт доступен по адресу
http://www.custom.domain
иhttp://custom.domain
. - Используется
RewriteEngine
, чтобы проверить, если соединение не защищенное (HTTP). - Если это так, все запросы перенаправляются на HTTPS с помощью
RewriteRule
.
- Указывает, что сайт доступен по адресу
-
Второй виртуальный хост (HTTPS):
- Обрабатывает запросы по защищенному протоколу
https://
. - Указывает на соответствующие сертификаты для SSL.
- Обрабатывает запросы по защищенному протоколу
Шаг 2: Убедитесь, что модули включены
Для использования директив Rewrite
, убедитесь, что модуль mod_rewrite
включен. Вы можете сделать это, выполнив следующую команду:
sudo a2enmod rewrite
Также убедитесь, что модуль SSL включен:
sudo a2enmod ssl
После этого перезапустите Apache:
sudo systemctl restart apache2
Шаг 3: Проверьте настройки
Теперь, чтобы проверить вашу настройку:
- Попробуйте зайти на http://www.custom.domain и http://custom.domain. Они должны перенаправить вас на https://www.custom.domain и https://custom.domain соответственно.
- Убедитесь, что ваш сертификат корректно установлен и работает для https.
Заключение
Таким образом, настройка виртуальных хостов для работы с IP-адресом и собственным доменом с автоматическим перенаправлением на защищенную версию сайта осуществляется через одну конфигурацию. Если у вас возникнут дополнительные вопросы или проблемы, не стесняйтесь задавать их. Удачи!