Избегание избыточности с виртуальными хостами http и https с помощью Webmin + Apache [закрыто]

Я настраиваю публичный веб-сервер для нескольких собственных веб-сайтов, используя Webmin и Apache 2.

Добавление виртуального хоста и специальных опций для него довольно просто в Webmin.

Однако мне нужен совет, как настроить конфигурацию http и https, используя одни и те же опции.

В настоящее время моя техника заключается в добавлении двух виртуальных хостов, один для порта 80 и один для 443. Это создает два отдельных файла .conf. Проблема в том, что каждый раз, когда я добавляю опцию для одного виртуального хоста, я должен помнить, что нужно сделать то же самое и для другого.

Как я могу избежать этого избыточного дублирования опций для каждого сайта?

Я знаю о директиве 'Include', но как мне эффективно управлять этим с помощью Webmin, чтобы Webmin не запутался? Полагаю, мне придется сначала вручную создать файл include и перенести в него некоторые директивы перед добавлением второго виртуального хоста с опцией SSL?

Как другие подходят к этому?

В принципе, это похоже на этот вопрос, но с Webmin.

-1
задан 5 April 2018 в 11:30
1 ответ

Как мне эффективно управлять этим с помощью Webmin?

Webmin позволяет настраивать только функции, веб-интерфейс. Вот почему обычные методы настройки не работают, а вопросы, связанные с панелями веб-настройки, считаются не по теме. Простота настройки может означать две разные вещи, и у вас не может быть и того, и другого:

  • Простота использования без знания файлов конфигурации => веб-панели конфигурации.
  • Простота управления и воспроизведения => файлы конфигурации с использованием Включить с, макросы и т. Д.

Как настроить конфигурацию http и https, используя одни и те же параметры?

Без Webmin. Если это цель, вы должны использовать Include s и макросы. Если у вас есть несколько имен хостов с одинаковыми настройками, и вы регулярно меняете некоторые настройки для всех, было бы идеально создать и скормить изменяющиеся детали с помощью Используйте . Для идентичных http и https:

<Macro VHost $name $domain>
<VirtualHost *:80>
    ServerName $domain
    ServerAlias www.$domain

    DocumentRoot "/var/www/vhosts/$name"
    ErrorLog "/var/log/httpd/$name.error_log"
    CustomLog "/var/log/httpd/$name.access_log" combined
</VirtualHost>
<VirtualHost *:443>
    ServerName $domain
    ServerAlias www.$domain

    SSLEngine on
    SSLCertificateFile "/path/to/$domain.cert"
    SSLCertificateKeyFile "/path/to/$domain.key"

    DocumentRoot "/var/www/vhosts/$name"
    ErrorLog "/var/log/httpd/$name.error_log"
    CustomLog "/var/log/httpd/$name.access_log" combined
</VirtualHost>
</Macro>

Use VHost example1 example.com
Use VHost example2 example.net

UndefMacro VHost

Однако, если эти идентичные http и https для каждого домена указывают, что у вас есть действующий сертификат для каждого доамина, зачем вам вообще разрешать http-соединения? Вы можете просто перенаправить весь http на https и забыть о необходимости дважды настраивать что-либо. Конфигурация http будет действительно простой и статичной:

  • Использование макросов внутри :

     
      ServerName $ домен
      ServerAlias ​​www. $ Domain
    
      Перенаправление / https: // $ domain /
     
     
     
  • Глобальное перенаправление виртуального хоста http по умолчанию (первый) на соответствующий https, например, mod_rewrite :

     
      Имя сервера default.example.com
    
      RewriteEngine On
      RewriteRule (. *) Https: //% {SERVER_NAME} / $ 1 [R, L]
     
     
  • Любой другой подход для перенаправления http на https.

2
ответ дан 5 December 2019 в 19:21

Теги

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