Рейтинг:0

Apache2 SSL работает только при удалении виртуального хоста?

флаг us

Я делаю веб-сайт, размещенный на Спэрроутенерд.пространство, и я пытаюсь использовать несколько поддоменов, чтобы я мог запускать NextCloud, OctoPrint и общую веб-страницу с одного и того же IP-адреса. Насколько я понимаю, это можно сделать с помощью VirtualHosts в Apache2. Однако, если я не удалю тег виртуального хоста из моего файла конфигурации (ниже), я получаю ошибку рукопожатия SSL с включенным CloudFlare и ошибку протокола SSL без него.

Я использую Apache2 v2.4.52 на Debian 11 Bullseye. Веб-сервер размещается самостоятельно и использует NodeJS на порту 9999 через прокси (я думаю, это правильная терминология?).

#<Виртуальный хост xxx:xx:xx:xxx:443>
        Веб-мастер администратора сервера@localhost
        имя_сервера
        Корень документа /var/www/sparrowthenerd

        ProxyPass /.известный/ !
        Проксипасс / http://localhost:9999/
        ProxyPassReverse/http://localhost:9999/
        ProxyPreserveHost включен

        SSLEngine включен
        SSLпротокол все -SSLv2
        SSLCipherSuite ВЫСОКИЙ:СРЕДНИЙ:!aNULL:!MD5
        SSLCertificateFile /etc/apache2/ssl/sparrowthenerd.space.pem
        SSLCertificateKeyFile /etc/apache2/ssl/sparrowthenerd.space.key


        Журнал ошибок ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log вместе

        <Каталог /var/www>
                AllowOverride нет

                Заказать Разрешить, Запретить
                Разрешить от всех
        </Каталог>
#</виртуальный хост>

Когда теги виртуального хоста раскомментированы, я получаю сообщение об ошибке. Когда они прокомментированы, я этого не делаю, но я также не могу добавить дополнительные поддомены. Я использую прокси-серверы CloudFlare с SSL-сертификатом Cloudflare. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация, я буду рад предоставить ее!

Chris avatar
флаг it
Не имеет отношения к вашей проблеме, но к вашему сведению «Разрешить заказ, запретить разрешение от всех» - это синтаксис apache 2.2. Теперь вы должны использовать «Требовать все предоставленные»
SparrowTheNerd avatar
флаг us
Правильно подмечено, спасибо!
Рейтинг:0
флаг us

У вас не должно быть IP-адреса в вашем Виртуальный хост директива. Вы должны разрешить Apache привязываться ко всем интерфейсам:

<VirtualHost *:443>
SparrowTheNerd avatar
флаг us
К сожалению, это не решает проблему
Рейтинг:0
флаг us

Оказывается, я был идиотом и перенаправил свой внутренний порт 80 на внешний порт 443, поэтому сервер получал HTTP-запросы вместо HTTPS и выдавал ошибку.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.