简单的概念验证隧道配置

简单的概念验证隧道配置

我正在尝试设置 stunnel 以从仅 HTTP 客户端访问 HTTPS Web 服务。应该很容易,对吧?我有以下 stunnel.conf:

client=yes
verify=0
[test-https]
accept  = 1337
connect = www.google.com:443

但是当我用浏览器访问http://localhost:1337Google 时,出现了 404 错误页面:

404. That’s an error. The requested URL / was not found on this server

我尝试了许多其他网站,但总是会出现某种错误。例如,Wordpress 网站会说:

找不到 /etc/wordpress/config-localhost.php 或 /etc/wordpress/config-localhost.php。请确保其中一个存在、可被 Web 服务器读取且包含正确的密码/用户名。

看来我做的一些事情根本就是错的,但网上的每个示例都显示了与我完全相同的配置。有人能给我一些帮助吗?

我在 Arch Linux 上使用 stunnel 5.02-1 (x86_64)。我将 stunnel 日志放在粘贴箱

答案1

问题出在部件上。如果您使用作为其名称,localhost大多数服务器都不会响应。localhost

如何解决这个问题:首先,在您想要访问的服务器上执行 nslookup 并从多个 IP 中选择一个,即12.34.56.78(不是真正的 Google IP,只是编造的)配置您的 stunnel.conf 以指向该 IP:

connect = 12.34.56.78:443

在您的客户端上设置/etc/hosts(我假设它与 stunnel 是同一台机器,如果不是,请使用相应的 IP)此新行:

127.0.0.1 www.google.com

使用 URLhttp://www.google.com:1337

注意:如果仍然出现错误,请尝试将其accept从 1337 更改为 443。

答案2

两个问题:

  1. 在目录 /etc/stunnel 中使用这些命令生成您自己的自签名证书:

    openssl genrsa 1024 > stunnel.key openssl req -new -key stunnel.key -x509 -days 1000 -out stunnel.crt cat stunnel.crt stunnel.key > stunnel.pem

并确保文件 /etc/stunnel/stunnel.conf 中的两行

 ;cert = /etc/stunnel/mail.pem
 ;key = /etc/stunnel/mail.pem

修改如下:

 cert = /etc/stunnel/stunnel.pem
 key = /etc/stunnel/stunnel.pem
  1. 鉴于您的 [test-https] 标签,浏览器中的调用必须不是http://localhost:1337,但相反必须test-https://localhost:1337

相关内容