如何为不支持 SSL 的 Web 服务器提供 HTTPS 访问?

如何为不支持 SSL 的 Web 服务器提供 HTTPS 访问?

我有一个程序 (motion),它提供一个显示实时摄像头源的网页。我想通过互联网提供该源,但使用 SSL 和证书,以便只有拥有适当证书的人才能看到该源。我想知道:是否有类似代理的东西可以从服务器读取并提供 SSL 版本?

答案1

安装具有相关虚拟主机的 Apache,并使用ProxyPass(可能还有ProxyPassReverse)代理您的网络摄像头。客户端证书身份验证有点棘手,但并不多;令人惊讶的是,在 Google 上搜索“apache 客户端证书身份验证”的结果是很有用

答案2

Womble 建议使用 Apache 反向代理,这是一个很好的建议。另一种解决方案是配置隧道将其包装起来。如果您不寻求在摄像头前拥有完整 Web 服务器的任何额外好处,Stunnel 将比 Apache 更轻量。

编辑2016:虽然已经过去很久了,但这个问题仍然有流量。我现在推荐拴住。Hitch 的设计注重可扩展性,而 stunnel 则不然。如果 HTTP 标头或内容需要通过代理进行修改,那么我建议Nginx

答案3

大多数通用网络服务器也具有代理模块,其中包括带有 mod_proxy 的 Apache,以及 Nginx 和 lighttpd,以提供更轻量级的解决方案。

如果你只是想要一个 SSL 代理,也就是说一个只接收 SSL 流量、解包、传输到后端服务并重新加密答案的组件,那么你应该看看隧道或者螺柱。由于这些工具只做这些,它们更容易设置,并且通常比其他工具(尤其是 Apache)更快、更节省资源。

答案4

是的,您所描述的是可行的。我想有很多工具可以做到这一点,但我非常有信心 apache 可以做到这一点。您描述的是“反向代理”(谷歌搜索)和基于证书的身份验证。对于前者,您可能需要 mod_rewrite,但我对后者没有太多经验。

如果其他一些工具可以做到这一点,我不会感到惊讶,例如 squid 或 SSL 加速设备。

相关内容