Apache-2.2

OpenVPN 與 Apache/SSL 的埠共享

  • April 7, 2020

我正在嘗試設置 OpenVPN 以偵聽埠 443,然後使用該port-share選項將所有 HTTPS 流量傳遞給 Apache。相關的配置片段是:

開放式VPN

local ${PUBLIC_IP}
port 443
port-share localhost 443

使用 SSL 的 Apache

Listen localhost:443

我的 OpenVPN 客戶端連接得很好,但是當打開啟用 HTTPS 的頁面時,我得到了錯誤。火狐 說:

SSL 收到超過最大允許長度的記錄。

(錯誤程式碼:ssl_error_rx_record_too_long)

捲曲 說

curl:(35)錯誤:140770FC:SSL常式:SSL23_GET_SERVER_HELLO:未知協議

該請求最終在 Apache 上結束,因為我在錯誤日誌中看到以下消息:

[Wed Oct 06 01:10:20 2010] [error] [client 127.0.0.1] Invalid method in request \x16\x03\x01
[Wed Oct 06 01:11:04 2010] [error] [client 127.0.0.1] Invalid method in request \x16\x03\x01
[Wed Oct 06 01:11:51 2010] [error] [client 127.0.0.1] Invalid method in request \x16\x03\x01

HTTPS 連接的消息條目是

Oct  6 01:13:21 ns1 openvpn[20154]: Re-using SSL/TLS context
Oct  6 01:13:21 ns1 openvpn[20154]: LZO compression initialized
Oct  6 01:13:21 ns1 openvpn[20154]: Control Channel MTU parms [ L:1544 D:140 EF:40 EB:0 ET:0 EL:0 ]
Oct  6 01:13:21 ns1 openvpn[20154]: Data Channel MTU parms [ L:1544 D:1450 EF:44 EB:135 ET:0 EL:0 AF:3/1 ]
Oct  6 01:13:21 ns1 openvpn[20154]: Local Options hash (VER=V4): 'c0103fa8'
Oct  6 01:13:21 ns1 openvpn[20154]: Expected Remote Options hash (VER=V4): '69109d17'
Oct  6 01:13:21 ns1 openvpn[20154]: TCP connection established with ${CLIENT_IP}:56203
Oct  6 01:13:21 ns1 openvpn[20154]: TCPv4_SERVER link local: [undef]
Oct  6 01:13:21 ns1 openvpn[20154]: TCPv4_SERVER link remote: ${CLIENT_IP}:56203
Oct  6 01:13:21 ns1 openvpn[20154]: ${CLIENT_IP}:56203 Non-OpenVPN client protocol detected
Oct  6 01:13:21 ns1 openvpn[20154]: TCP/UDP: Closing socket

使用 httpd-2.2.3-43.el5.centos 和 openvpn-2.1.1-2.el5 。

我應該怎麼做才能使埠共享工作?


更新:使用

port 443
port-share localhost 10443

Listen localhost:10443

沒什麼區別。


更新 2:一些命令輸出

[root@ns1 ~]# openvpn --help | grep port-share
--port-share host port : When run in TCP mode, proxy incoming HTTPS sessions
[root@ns1 ~]# netstat -nltp | grep 443
tcp        0      0 127.0.0.1:10443             0.0.0.0:*                   LISTEN      20088/httpd         
tcp        0      0 ${PUBLIC_IP}:443             0.0.0.0:*                   LISTEN      20066/openvpn       

該選項設置其他應用程序正在偵聽port-share的埠。

您要做的是配置

埠共享 10443

並將 Apache 設置為偵聽埠 10443:

聽<你的公共IP>:10443

那是因為兩個應用程序不能同時打開同一個埠。

OpenVPN 的埠共享選項允許您將流量重定向到另一個 HTTPS 站點,而不是正常 Web 伺服器;您看到的錯誤

[error] [client 127.0.0.1] Invalid method in request \x16\x03\x01

當 SSL 請求發送到非 0SSL 站點時發生。我可以通過使用重現錯誤

 port-share localhost 80

(而不是 443)如果您正確設置了 HTTPS 站點,那麼埠共享將起作用。

高溫下,

JJK

引用自:https://serverfault.com/questions/187915