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

我有一个程序(运动),提供一个网页显示一个实时摄像头的饲料。 我想通过互联网提供这种饲料,但是使用SSL和一个证书,所以饲料只能被那些有适当的证书的人看到。 我想知道的是:有没有像从服务器读取代理服务器,并提供SSL版本?

安装Apache与相关的虚拟主机,并使用ProxyPass (可能ProxyPassReverse )做代理到您的摄像头。 客户端证书authentication是一个棘手的问题,但并不多; 令人惊讶的是,Googlesearch结果对于“apache客户端证书authentication” 非常有用 。

Womble对Apache反向代理的build议是一个很好的build议。 另一个解决scheme是configurationstunnel来包装它。 如果您不想在摄像头前面安装完整的Web服务器,那么Stunnel将比Apache更轻量级。

编辑2016 :已经很长一段时间了,但这个问题仍然是stream量。 我现在推荐顺利 。 Hitch是为扩展性devise的,而stunnel则不是。 如果HTTP头或内容需要被代理修改,那么我推荐Nginx 。

大多数通用的web服务器也有一个代理模块,其中包括Apache与mod_proxy,以及Nginx和lighttpd为一个更轻量级的解决scheme。

如果你只是想要一个SSL代理,意思是一个只接收SSLstream量的组件,将其解包,将其传输到后端服务,并重新encryption答案,你应该看看stunnel或stud 。 由于这些工具只能做到这一点,所以它们更容易设置,而且通常比替代scheme(尤其是Apache)更快,更省资源,

您可能已经拥有的另一个选项是VPN。 根据您在networking摄像机/ DVR之前的防火墙,您可以设置移动IPSec VPN并首先拨入防火墙,然后通过其内部IP访问摄像机(假设摄像机在NAT后面防火墙)。

大多数“商业”防火墙/路由器现在提供VPNfunction。

使用此选项,您可以完全禁用端口转发,以便您的摄像机不再在外面监听,并且只有在build立VPN连接后才能访问。

这将为您提供encryption和身份validation,而不是将Apache设置为反向代理,而不需要花费额外的硬件成本(这又取决于您拥有的)。

缺点是你需要在你想要查看摄像机的每台机器上configuration一个VPN客户端,但是也会有一些额外的pipe理开销和客户端证书。

还应该提到的是,根据encryption/协议,VPN确实会增加开销,这可能会影响networking吞吐量,但这不应该成为您期望的用户数量和相机赢得“不经常同时看。

如果您只打算从一个远程位置*访问摄像机,则还可以在远程位置和摄像机位置的防火墙(称为站点到站点IPSec VPN隧道)之间设置IPSec隧道。 这样,您就不需要在计划查看摄像机的每台计算机上configurationVPN客户端:只需在该远程位置的任何计算机上的任意浏览器中拉起摄像头的Web界面(取决于防火墙规则课程)。

如果您向我们提供防火墙产品/型号,我们可以build议最好的configuration。

*您肯定可以设置更多的站点到站点VPN隧道。 但是如果5个用户都在不同的互联网地点,那么通过build立IPSec隧道的过程有点矫枉过正,所以VPN客户端会更实用(或者两者的结合:即,如果5个用户中的4个在一个Internet位置,在那里build立IPSec隧道;第五个用户可以使用VPN客户端)。

你所描述的是可以的,是的。 我想有一些工具可以做到这一点,但我相当相信,Apache可以做到这一点。 你正在描述一个“反向代理”(Google的东西)和基于证书的authentication。 首先,你可能需要mod_rewrite,但是我对后者没有太多的经验。

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