如何为 HTTPS 进行 SSH 端口转发?

如何为 HTTPS 进行 SSH 端口转发?

我创建了以下端口转发:

ssh -vL localhost:4433:example.com:443 remote-linux-host

注意:我4433在本地使用而不是443避免使用sudo.

但是,当我转到 时https://localhost:4433/,忽略证书检查后,出现以下错误(在 Chrome 和 Firefox 上):

404 - 未找到

使用时相同curl

$ curl -s https://localhost:4433/ | html2text
<?xml version="1.0" encoding="iso-8859-1"?>
****** 404 - Not Found ******

如何为 HTTPS 进行端口转发?

我的目标是通过远程服务器在我的本地(端口 4433)上打开https://example.com/(通过 HTTPS 运行良好)。

答案1

假设 example.com 是 93.184.216.34。

其中一种方法可以如下。

做:

ssh -L 4433:93.184.216.34:443 remote-linux-host

/etc/hosts使用浏览器在本地机器中定义:

127.0.0.1 example.com

然后在浏览器中打开:https://example.com:4433/

这样,它就会发送正确的Host标头。

创建主机条目后,请注意浏览器/解析器 DNS 缓存。

答案2

为了让主机名、SSL 证书等都满意,您可以使用该-D选项来创建动态 SOCKS4/5 代理。

ssh -D 4444 username@ssh-hostname

然后在本地计算机上设置 firefox/chrome 以使用所述代理。

相关内容