Как установить перенаправление apache HTTP на HTTPS на внутреннем прокси? - PullRequest
1 голос
/ 13 марта 2020

На моем сайте есть два приложения, написанные на Vue. Первый - это SPA на порту 80, второй - Nuxt SSR на порту 8080, который перенаправлен с localhost: 8000. Мне удалось установить HTTPS на обоих внешних портах, но только на порт 80 HTTP-трафик c перенаправляется на HTTPS. На порте 8080 HTTPS работает, но когда я пытаюсь зайти на сайт с http: //, он выдаёт мне Apache ошибку Bad Requetst:

"Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please."

Я хочу, чтобы все трафики c на порте 8080 были перенаправлен на HTTPS.

Мой сайт.conf:

<VirtualHost *:443>
    ServerName site.com

    SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
    Protocols h2 http/1.1
    SSLEngine On
    SSLCertificateFile cert_path...
    SSLCertificateKeyFile key_path...
    SSLCertificateChainFile cert_path...
    ...
</VirtualHost>

<VirtualHost *:80>
    ...
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
    ...
</VirtualHost>

<VirtualHost *:8080>
    ...
    SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
    Protocols h2 http/1.1
    SSLEngine On
    SSLCertificateFile cert_path...
    SSLCertificateKeyFile key_path...
    SSLCertificateChainFile cert_path...

    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:8000/
    ProxyPassReverse / http://127.0.0.1:8000/

    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^/?(.*) https://%{SERVER_NAME}:8080/$1 [R,L]
</VirtualHost>
...