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

обратный прокси http -> https?

У нас есть тестовый HTTPS-сервер с самоподписанным SSL-сертификатом. Есть ли какой-либо обратный прокси-сервер, который позволит нам посещать страницу в HTTP, чтобы наша программа могла отправлять HTTP-запрос, а не HTTPS-запрос?

Вы можете сделать это с помощью apache.

Во-первых, вам нужно загрузить модули ssl, proxy, proxy_http и proxy_html.

Затем вам понадобится такая настройка прокси:

<VirtualHost 0.0.0.0:80>
    ServerName give_it_a_name

    SSLProxyEngine on

    ProxyPass / https://your-test-server/
    ProxyPassReverse / https://your-test-server/

    ErrorLog /the/error.log
</VirtualHost>

Конечно, для этого вам не нужен VirtualHost, вы можете встроить директивы ProxyPass * и SSLProxy * в любое другое определение хоста.

Обратите внимание, что сертификат должен быть подписан доверенным центром. Если вы используете самозаверяющие сертификаты, вы должны предоставить их, используя

SSLProxyCACertificateFile /the/pem/file

или

SSLProxyCACertificatePath /the/dir/where/the/cert/files/are

директивы.

Кроме того, Apache проверяет, совпадает ли имя удаленного хоста с тем, которому выдан сертификат. Вы можете отключить это поведение, добавив

SSLProxyCheckPeerCN off

строку в ваш config. Для дальнейших настроек вы можете проверить Документы Apache.

RewriteEngine On
RewriteRule ^/foo(.*)$  https://%{HTTP_HOST}%{REQUEST_URI} [R]

Если на вашем тестовом сервере включен HTTP, вы можете просто прокси для этого протокола (при условии, что apache и mod_rewrite):

RewriteEngine On
RewriteRule ^/foo(.*)$ http://testserver.example.org/$1 [P]

Если через незашифрованный HTTP-порт ничего не слушает, вы не можете просто отключить SSL.