Файл виртуального хоста (vhost) с IP и доменом одновременно в openSUSE с редиректом SSL

Вопрос или проблема

Я немного в затруднении, пытаясь заставить это работать правильно. Коротко говоря, у меня есть файл 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>

Объяснение конфигурации

  1. Первый виртуальный хост (HTTP):

    • Указывает, что сайт доступен по адресу http://www.custom.domain и http://custom.domain.
    • Используется RewriteEngine, чтобы проверить, если соединение не защищенное (HTTP).
    • Если это так, все запросы перенаправляются на HTTPS с помощью RewriteRule.
  2. Второй виртуальный хост (HTTPS):

    • Обрабатывает запросы по защищенному протоколу https://.
    • Указывает на соответствующие сертификаты для SSL.

Шаг 2: Убедитесь, что модули включены

Для использования директив Rewrite, убедитесь, что модуль mod_rewrite включен. Вы можете сделать это, выполнив следующую команду:

sudo a2enmod rewrite

Также убедитесь, что модуль SSL включен:

sudo a2enmod ssl

После этого перезапустите Apache:

sudo systemctl restart apache2

Шаг 3: Проверьте настройки

Теперь, чтобы проверить вашу настройку:

Заключение

Таким образом, настройка виртуальных хостов для работы с IP-адресом и собственным доменом с автоматическим перенаправлением на защищенную версию сайта осуществляется через одну конфигурацию. Если у вас возникнут дополнительные вопросы или проблемы, не стесняйтесь задавать их. Удачи!

Оцените материал
Добавить комментарий

Капча загружается...