首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >https的socat端口转发

https的socat端口转发
EN

Stack Overflow用户
提问于 2016-01-14 14:10:13
回答 4查看 51.8K关注 0票数 17

我可以使用socat进行端口转发,如下所示:

代码语言:javascript
复制
socat TCP4-LISTEN:8080 TCP4:123.456.789.12:80

在这种情况下,它完美地工作:所有的http-requests到localhost:8080都将被重定向到123.456.789.12:80

但我如何才能将这种转发用于https-requests呢?

更新:-我需要一个socat进程之间的火狐和远程服务器。socat只是一个转发器(代理重定向器),仅此而已。就像这样:

代码语言:javascript
复制
Firefox -> socat -> server
       ------------>
           https
EN

回答 4

Stack Overflow用户

发布于 2016-01-18 21:41:57

通常,https服务器运行在端口443上,所以这可能是您的问题吗?

尝试浏览带有https工作的套接字到google.com,尽管带有SSL证书警告:

代码语言:javascript
复制
socat TCP-LISTEN:8080,fork,reuseaddr TCP:google.com:443

(使用forkreuseaddr允许多个连接和快速ip:端口重用,但注意注意这些警告)。

现在,您可以通过浏览器访问google的https,只需转到https://localhost:8080即可。

票数 25
EN

Stack Overflow用户

发布于 2016-01-21 11:27:11

您所收到的浏览器安全警告是因为url和服务器证书中的主机名不匹配(例如,localhostexample.com)。

若要在没有此警告的情况下使转发工作,您需要将转发器放在相同的TCP端口上,并覆盖受影响域的DNS解析(即将example.com解析为127.0.0.1)。

最简单的方法如下:

  1. 编辑您的主机文件并将example.com域添加到localhost行(类似于howto 这里)
  2. 启动转发(请注意,您需要使用服务器IP地址,而不是域名,因为域名已经重定向到本地主机) socat TCP-LISTEN:443,fork,reuseaddr TCP:123.456.789.12:443
  3. 通过https://example.com检查它是否在浏览器中工作

完成实验时,不要忘记从主机文件中删除域条目。

如果无法确保相同的TCP端口号,此方法可能也能工作--但只在某些条件下才能工作:

  • 站点在链接中使用相对路径(就像绝对路径使用原始(因此不同)端口号一样)
  • 服务器证书中没有写入端口号(通常不是这样)。

注意:可以设置MITM套接字代理,但这需要添加一个人工信任的CA。

祝好运!

票数 10
EN

Stack Overflow用户

发布于 2019-05-03 16:28:04

试着做这样的事情:

代码语言:javascript
复制
socat TCP-LISTEN:8080,fork,reuseaddr ssl:google.com:443
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34791674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档