https --> http 轻量级代理

https --> http 轻量级代理

我是网络服务器的新手,需要一些建议。

我编写了基于服务超过RedHat 7.2

遗憾的是,served据我所知,它不支持 HTTPS。

为了符合公司指导方针,我想要设置HTTPS --> HTTP

我尝试配置tinyproxy以下内容本指南,但它似乎不适合作为HTTPS到HTTP的代理。

如何配置 tinyProxy 以接收 HTTPS 并输出 HTTP?您能否向我提供有关此主题的资源?

答案1

我相信你正在寻找隧道

Stunnel 是一种代理,旨在为现有客户端和服务器添加 TLS 加密功能,而无需对程序代码进行任何更改。

答案2

我个人会考虑 Hitch - 而不是运行功能齐全的 Web 服务器(Apache),Hitch 是专门为终止 TLS 连接而构建的。

它由 Varnish 团队构建,具有出色的安全记录,并且采用异步 IO 驱动,因此比 Apache2 的每个连接模型的进程更精简/更快。

https://hitch-tls.org/

答案3

据我理解,您想要tinyproxy终止 TLS 并与后端通信纯 HTTP。

似乎tinyproxy 不支持此功能:

不,tinyproxy 不支持透明 HTTPS 代理。仅支持透明 HTTP 代理。将端口 443 重新路由到端口 80 不起作用;这是两个非常不同的协议。唯一的方法是在系统/环境或浏览器中手动设置代理。

如果必须使用 HTTPS 透明代理,请考虑使用 Squid。

但您可以使用 Apache(包httpdmod_ssl)来执行此操作:

笔记:我假设您的后端服务器绑定到端口 8080(因为它使 SELinux 更容易)。有关详细信息,请参阅服务管理端口httpd_selinux

  • 设置 Apache 以使用 TLS(参见例如迪吉特的指南,以及安全建议
  • 你最终应该得到如下结果: <VirtualHost *:443> DocumentRoot /var/www/html ServerName www.yourdomain.com SSLEngine on SSLCertificateFile /path/to/your_domain_name.crt SSLCertificateKeyFile /path/to/your_private.key SSLCertificateChainFile /path/to/chain.crt </VirtualHost>
  • 添加代理指令: [...] SSLCertificateChainFile /path/to/chain.crt ProxyEngine on SSLProxyEngine on ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ <Proxy http://localhost:8080/> Require all granted </Proxy>
  • 设置 SELinux:setsebool -P httpd_can_network_relay=1
  • 重新开始httpdsystemctl restart httpd

相关内容