Linux

埠重定向 443 到 8443 不適用於我的 tomcat 實例

  • January 22, 2020

我在專用主機伺服器上使用 ubuntu 無頭伺服器 18.04。主機有外部防火牆,我在其中打開了埠 8443,443 (tcp)。在我使用 iptables 的 ubuntu 伺服器上,我使用表 nat 將埠 443 重定向到 8443。

iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-ports 8443

我還打開了入站和出站埠 443 和 8443。

我仍然可以使用 example.com:8443 訪問 tomcat 實例並且沒有問題,但 example.com 沒有響應。查看 iptables 我沒有看到任何丟棄數據包。在我的 tomcat 上,我沒有更改 server.xml。連接器聽 8443。我不知道,問題出在哪裡?我希望一些專家可以幫助我解決這個問題。

親切的問候

黑鬍子

您真正需要的是一個反向代理(例如 Nginx),它可以在埠 443 上為您執行 SSL 終止,然後在埠 8443 上將請求傳遞給 Tomcat。

SSL/TLS 很複雜,在我看來,依靠 IPTABLES 處理 SSL 握手並將您的請求發送到 Tomcat 應用程序並不是一個好主意。

如果您真的需要使用 IPTABLES,請連接到該服務openssl並找出到底發生了什麼。在此處報告輸出,可能會提供更多幫助。

openssl s_client -connect www.example.com:443

問題也可能是您正在使用該nat表。我的理解是,僅當請求通過伺服器路由時才應用此表的規則,而不是路由到同一 IP 地址上的不同埠。

反向代理會消除很多這種複雜性,並為您提供更多功能(例如速率限制、訪問控制等)來啟動。

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