Apache несколько портов HTTPS - PullRequest
0 голосов
/ 21 мая 2019

Мой конфиг

  • AWS Lightsail с использованием Bitnami
  • React работает на порту 3000
  • Экспресс работает по порту 3001
  • HTTPS с использованием сценария Bitnami (с использованием Let's encrypt)

Что бы я хотел

  1. Любой звонок с https://www.ipos.fun/ или https://ipos.fun/ или ipos.fun / или www.ipos.fun / для перехода на https://www.ipos.fun/. (с добавлением wwww + https)
  2. Мой Express API на порту 3001 также будет в порядке с HTTPS.

Что сейчас работает

  1. Перенаправление всех интерфейсов работает нормально.

Что не работает

  1. Мой Express API работает через HTTP, но у меня появляется ошибка www.ipos.fun unexpectedly closed the connection. при попытке доступа к https://www.ipos.fun:3001/.

Что я пробовал

Пожалуйста, найдите все мои настройки ниже, но я думаю, что важный момент:

ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/

Я хотел бы иметь соответствие на основе номера порта, но, похоже, ничего не работает. Я также попробовал следующее с URL https://www.ipos.fun:3001/api/

ProxyPass /api http://localhost:3001/
ProxyPassReverse /api http://localhost:3001/

Я пытался создать несколько VirtualHost для сопоставления с образцом номера порта, но это не сработало.

Вопрос

Как мне сделать мой Express API на порту 3001 HTTPS-совместимым?

Вот мой конфиг:

# Default Virtual Host configuration.

<IfVersion < 2.3 >
  NameVirtualHost *:80
  NameVirtualHost *:443
</IfVersion>


<VirtualHost _default_:80>
  DocumentRoot "/opt/bitnami/apache2/htdocs"
  RewriteEngine On
  # BEGIN: Enable HTTP to HTTPS redirection
  RewriteCond %{HTTPS} !=on
  RewriteCond %{HTTP_HOST} !^(localhost|127.0.0.1)
  RewriteCond %{REQUEST_URI} !^/\.well-known
  RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
  # END: Enable HTTP to HTTPS redirection
  # BEGIN: Enable non-www to www redirection
  RewriteCond %{HTTP_HOST} !^www\. [NC]
  RewriteCond %{HTTP_HOST} !^(localhost|127.0.0.1)
  RewriteCond %{REQUEST_URI} !^/\.well-known
  RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=permanent,L]
  # END: Enable non-www to www redirection
  <Directory "/opt/bitnami/apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride All
    <IfVersion < 2.3 >
      Order allow,deny
      Allow from all
    </IfVersion>
    <IfVersion >= 2.3 >
      Require all granted
    </IfVersion>
  </Directory>

  # Error Documents
  ErrorDocument 503 /503.html

  # Bitnami applications installed with a prefix URL (default)
  Include "/opt/bitnami/apache2/conf/bitnami/bitnami-apps-prefix.conf"
</VirtualHost>

# Default SSL Virtual Host configuration.

<IfModule !ssl_module>
  LoadModule ssl_module modules/mod_ssl.so
</IfModule>

Listen 443
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite "..."
SSLPassPhraseDialog  builtin
SSLSessionCache "shmcb:/opt/bitnami/apache2/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300

<VirtualHost _default_:443>
  DocumentRoot "/opt/bitnami/apache2/htdocs"
  RewriteEngine On
  # BEGIN: Enable non-www to www redirection
  RewriteCond %{HTTP_HOST} !^www\. [NC]
  RewriteCond %{HTTP_HOST} !^(localhost|127.0.0.1)
  RewriteCond %{REQUEST_URI} !^/\.well-known
  RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=permanent,L]
  # END: Enable non-www to www redirection
  SSLEngine on
SSLCertificateFile "/opt/bitnami/apache2/conf/ipos.fun.crt"
SSLCertificateKeyFile "/opt/bitnami/apache2/conf/ipos.fun.key"

  <Directory "/opt/bitnami/apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride All
    <IfVersion < 2.3 >
      Order allow,deny
      Allow from all
    </IfVersion>
    <IfVersion >= 2.3 >
      Require all granted
    </IfVersion>
  </Directory>

    ProxyRequests off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>


    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000/


  # Error Documents
  ErrorDocument 503 /503.html

  # Bitnami applications installed with a prefix URL (default)
  Include "/opt/bitnami/apache2/conf/bitnami/bitnami-apps-prefix.conf"
</VirtualHost>

# Bitnami applications that uses virtual host configuration
Include "/opt/bitnami/apache2/conf/bitnami/bitnami-apps-vhosts.conf"

1 Ответ

0 голосов
/ 23 мая 2019

Одним из решений является добавление маршрутизации в VirtualHost: 443,

ProxyPass /api/ http://localhost:3001/
ProxyPassReverse /api/ http://localhost:3001/

Это то, что я упоминал ранее, я просто тестировал порт 3001 вместо порта HTTPS 443.

...