Назад | Перейти на главную страницу

Перенаправление URL-адреса HTTPS на службу, работающую на другом порту

Я уже несколько часов пытаюсь получить свою конфигурацию SSL. Я использую CentOS7. У меня есть сертификаты SSL, сгенерированные и работающие правильно; Я могу https://myip.com/test и получить html через SSL.

У меня есть служба, которая работает на отдельном порту (мы назовем его портом 12345, но при необходимости его можно изменить), который запускает собственный http-сервер. Я хотел бы получить к нему доступ через SSL. мой .conf файл в / etc / httpd / sites-available читает:

<VirtualHost *:443>
        ServerAdmin email@address
        ServerName server
        ServerAlias *:443
        ErrorLog /var/www/html/cam/error.log

        SSLEngine On
        SSLCertificateFile /etc/pki/tls/certs/ca.crt
        SSLCertificateKeyFile /etc/pki/tls/private/ca.key

        SSLProxyEngine On
        ProxyRequests On
        ProxyPreserveHost On
        ProxyVia full

        <proxy *>
                Order deny,allow
                Allow from all
        </proxy>

        ProxyPass / http://192.168.1.90:12345/
        ProxyPassReverse / http://192.168.1.90:12345/

</VirtualHost>

Насколько я понимаю, ProxyPass и ProxyPassReverse должны перенаправлять входящее SSL-соединение на http-сервер / службу, работающую на локальном порту. Правильно ли я понимаю это и просто что-то упускаю при правильной настройке, или это не способ добиться этого?

С показанной конфигурацией я получаю ЗАПРЕЩЕННУЮ ошибку, но если я помещаю index.html внутри / var / www / html / cam, он показывает это через SSL https.

Спасибо за любую помощь

Еще немного поигравшись, я понял, в чем проблема. Во-первых, мне нужно было указать путь в двух строках прокси; Их нужно было изменить на:

ProxyPass /cam/ http://192.168.1.90:12345/
ProxyPassReverse /cam/ http://192.168.1.90:12345/ 

Кроме того, я изначально поставил только «/ cam» и все еще имел ошибку. Посмотрев на / var / log / httpd / access_log, я увидел, что он пытается GET / cam / - это заставило меня подумать, что правило прокси не соответствует. Я добавил косую черту в конце и вуаля, все заработало. Теперь HTTPS-запросы к / cam / перенаправляются на локальную службу / сервер, работающий на порту 12345.

FYI для всех, кто пытается следовать и применять это к своей ситуации, на случай, если вы не знакомы с настройкой SSL (я только что в нее вошел сегодня) - Спецификация каталога cam происходит из настройки в / etc /httpd/conf/httpd.conf в строке "IncludeOptional sites-enabled / *. conf", в которой был размещен cam.conf.

Я начал с этой ссылки: https://www.techrepublic.com/article/how-to-enable-https-on-apache-centos/ - очень хорошее руководство по первоначальной настройке SSL. Причина этого поста заключалась в том, что после всего этого я хотел перенаправить конкретный адрес HTTPS на не-https-сервер, работающий на локальном компьютере.

Думаю, я рассмотрел все, что сделал, чтобы решить эту проблему - я попытался добраться сюда как можно скорее, прежде чем забыл какие-либо детали!