Apache - выставление веб-приложения на порт с использованием субдомена / маршрута с SSL - PullRequest
0 голосов
/ 30 мая 2020

Я пытаюсь открыть веб-приложение через поддомен с SSL или через маршрут.

Метод поддомена:

Веб-приложение, которое я использую, находится на порту: http://localhost: 4567 /

При следующей конфигурации веб-браузер сообщает мне, что приложение «небезопасно» (не https).

Приложение в целом работает нормально, но не https.

Что я делаю не так? Существуют ли альтернативные конфигурации?

<IfModule mod_ssl.c>
    Listen 443
    NameVirtualHost *:443
</IfModule>

<VirtualHost *:80>
  ServerName blast.example.com
  Redirect permanent / https://blast.example.com/
</VirtualHost>

<IfModule mod_ssl.c>

<VirtualHost *:443>
    ServerAdmin me@gmail.com
    ServerName blast.example.com
    # ProxyPreserveHost On
    ProxyRequests off

    # setup the proxy
    <Proxy *>
        Order allow,deny
        Allow from all
    </Proxy>
#    ProxyPass / http://localhost:4567/
#    ProxyPassReverse / http://localhost:4567/

  <Location />
    ProxyPass http://localhost:4567/
    ProxyPassReverse http://localhost:4567/
  </Location>

  SSLEngine on
  SSLProtocol all -SSLv2 -SSLv3
  SSLCipherSuite ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!LOW:!aNULL:!eNULL

  SSLCertificateFile ...
  SSLCertificateKeyFile ...
  Include /etc/letsencrypt/options-ssl-apache.conf

</VirtualHost>

Я следовал рецепту, данному в Как настроить несколько субдоменов с SSL в Apache?

Путь / Метод маршрута

Я также пробовал выставить приложение как путь маршрута (ie https://example.com/blast)

  <Location /blast/ >
    ProxyPass http://localhost:4567/
    ProxyPassReverse http://localhost:4567/
  </Location>

, но обратный прокси не видел, чтобы это сработало, если бы я начал с:

https://example.com/blast

и щелкнул что угодно на начальной странице. Приложение сгенерирует внутренний URL-адрес без / blast, что приведет к 404:

https://example.com/blah-blah-generated-url 
(should be https://example.com/blast/blah-blah-generated-url)

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

1 Ответ

0 голосов
/ 30 мая 2020

Настройка пути / маршрута:

Обеспечение доступа к приложению с помощью https://example.com/blast. Если приложение генерирует новые маршруты, необходим ProxyPassReverse; в противном случае; требуется только ProxyPass.

<VirtualHost *:443>
  ...
  ProxyPass "/blast/" "http://localhost:4567/"
  ProxyPassReverse "/blast/" "/"
  ...

Найдено в примере 1, здесь: ProxyPassReverse не перезаписывает Location (заголовок http)

...