apache2 HTTPS 到 HTTP 反向代理

apache2 HTTPS 到 HTTP 反向代理

我正在嘗試在 Apache 2 中設定我認為需要的反向代理。

我已經設定了 apache 並且啟用了 Mod_proxy、mod_ssl、Mod_rewrite 。

我試圖透過 HTTPS 網頁控制媒體播放器,它不允許 http 連線。不幸的是,控制系統不支援 Https。從技術上講,它甚至不真正執行http(它不是瀏覽器)。儘管我可以形成 HTTP 封包並解析回應。我經常與其他產品一起這樣做。

所以我想要做的是將 HTTP 請求傳送到 192.168.0.17:80 的 apache2 伺服器,讓 Apache 伺服器將該請求轉送到 192.168.0.12:443 的 HTTPS 媒體伺服器。然後將生成的原始程式碼以純文字形式傳回原始客戶端進行解析。解析資訊後,我將使用它來填充變量,然後使用這些變量生成 http 資料包來模擬單擊特定 GUI 元素。

所有機器都位於專用於控制系統的本地網路上,雖然它確實有互聯網連接,但我不需要讓代理處理來自廣域網一側的任何請求,事實上,我只需要代理來處理來自單一機器的請求本地IP位址。

我知道我需要設定一個類似這樣的虛擬主機文件

<VirtualHost 1.2.3.4:80>
ServerName foo.com
SSLProxyEngine On
SSLProxyCheckPeerCN on
SSLProxyCheckPeerExpire on
ProxyPass / https://secure.bar.com
ProxyPassReverse / https://secure.bar.com

但我無法理解哪些 IP 訊息需要發送到哪裡,或者我可能需要更改哪些其他設定。

作為一個附帶問題,有沒有辦法編寫 apache 腳本來維護 https 伺服器上的登入並在會話逾時時重新進行身份驗證?我可能會每隔幾秒鐘輪詢一次伺服器以獲取一些反饋元素,但如果可能的話,將登入程序卸載到 apache 仍然會很好

謝謝你的幫忙。我現在已經有 4 小時的樹莓派和 apache 經驗了。

答案1

你做錯了。

` RewriteRule 上的伺服器名稱 foo.com RewriteEngine ^/(.*)$ https://secure.bar.com/$1 [P,L]

總的來說,更<VirtualHost *>簡單、更性感(當然NameVirtualHost *必須存在)。

答案2

你很接近。

<VirtualHost 1.2.3.4:80> 
ServerName foo.com
SSLProxyEngine on 
ProxyPass / https://secure.bar.com/      
ProxyPassReverse / https://secure.bar.com/

如果網站對主機進行了硬編碼,您可以使用我的大部分範例這裡,只要確保使用 HTTPS 和 SSLProxyEngine 就可以了

相關內容