![使用反向隧道访问防火墙保护的 HTTPS Web 服务器](https://linux22.com/image/629964/%E4%BD%BF%E7%94%A8%E5%8F%8D%E5%90%91%E9%9A%A7%E9%81%93%E8%AE%BF%E9%97%AE%E9%98%B2%E7%81%AB%E5%A2%99%E4%BF%9D%E6%8A%A4%E7%9A%84%20HTTPS%20Web%20%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我的网络上有一个设备(“A”),它仅通过 HTTPS 提供内容,由于它位于我的路由器/防火墙后面,因此无法访问。
我在互联网的其他地方有另一台机器(“B”)(虚假 IP 为 44.44.44.44)
我想要从 B 访问 A 提供的内容。我已经在 B 上为 A 设置了 accepting_keys。
--
我对 SSL/TLS 隧道有基本的了解,但从未将其与 HTTPS 复杂化。
因此我首先创建从 A -> B 的反向隧道:
ssh -N -R 8888:localhost:443 [email protected]
那么此时,在 B 上,我应该能够访问端口 8888,就像在 A 上访问端口 443 一样?
当我尝试在 B 上访问 localhost:8888 时,我得到以下内容(来自 link2s)
Bad request! Your browser (or proxy) sent a request that this server could not understand. If you think this is a server error, please contact the webmaster. Error 400 www.example.com Sat Mar 29 22:50:34 2014 Apache/2.2.26 (Unix) PHP/5.5.8 mod_ssl/2.2.26 OpenSSL/1.0.1f DAV/2
当我玩这个的时候,我碰巧使用了 Apache,我是否需要在其配置中启用某个功能或者我需要做其他事情?
答案1
当您要求浏览器连接到时,localhost:8888
它实际上会默认使用http://localhost:8888/
,但由于它是 SSL 端口,因此这对您来说不起作用。改用 URLhttps://localhost:8888/
应该可以工作,但证书警告除外。