通过纯文本 TCP 进行 TLS 包装

通过纯文本 TCP 进行 TLS 包装

有没有什么工具可以让我通过原始 tcp 制作 tls 转发器?

我有一个没有加密的服务器,纯文本 TCP 通信。

我想通过 tls 连接到它,但无法更改服务器代码。

我需要一个 tls 转发工具来在服务器中创建一个 tls 包装器并转发到纯文本 tcp 服务器。

如果我连接到该 tls,该 tls 将连接到纯文本服务器并充当我的代理。

有没有什么免费工具可以让我的生活更轻松?

答案1

是的,这被称为“反向代理”或“终止代理”。由于您专门使用它来提供 TLS,因此可以将其称为“TLS 终止代理”或“TLS 卸载代理”。人们通常为此使用 nginx 或 HAProxy,但我相信解决方案的数量与 HTTP 服务器实现的数量一样多。您甚至可以使用 Python 的内置 HTTP 服务器模块从简单的 Python 脚本执行此操作。

基本步骤是安装您要用作代理的软件,生成您希望代理服务器使用的 TLS 证书,将该证书安装到您的代理软件中,并配置代理软件以将所有请求转发到不安全 HTTP 服务器的 IP 地址和端口。

如果您使用自签名证书,则必须告诉您的客户信任它。如果这是个问题,您可以使用 Let's Encrypt 之类的服务来获取大多数客户都会自动信任的公开签名证书。

答案2

Spiff 正确地回答了这个问题,但没有提供一个清晰的例子,我自己找到了人类历史上最简单的解决方案,使用戈斯特

只需运行以下命令:

gost -L tls://:listen_port/:forward_port

就我而言:

gost -L tls://:443/:80

相关内容