问题标签 [stunnel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1342 浏览

ssh - 当 ssh 被管理员阻止时 ssh 进入 aws EC2 实例

我有一个新的 aws EC2 实例,在家一切正常。现在 ssh 访问在大学被阻止了!我想知道如何绕过它并通过 ssh 进入我的 ec2 实例。我有什么方法可以做到?另外,我怎样才能使用 stunnel 来做到这一点?简短的解释与解决方案一起受到赞赏。

0 投票
1 回答
923 浏览

php - 使用 Stunnel 通过 Web 服务器向 MySQL 服务器提交表单数据?

我有一个用户可以填写的表格,数据将使用 PHP 存储到 MySQL 数据库中。到 Apache 服务器的连接是通过 HTTPS 加密的,我想加密到 MySQL 数据库的连接。Apache 和 MySQL 都在同一台服务器机器上。

我在 Internet 上进行了挖掘,而 Stunnel 似乎正是我所需要的。在服务器上支持并激活 OpenSSL 和 SSL,因为我们可以选择使用标准端口和 stunnel 端口连接到 MySQL 服务器。但是,我在网上找到的所有文章都涉及使用 Stunnel 将 MySQL 客户端连接到外部 MySQL 服务器,而不是如何使用 PHP 连接到本地 MySQL 服务器。我是否可以假设仅仅因为表单是通过 https 传输的,并不意味着与数据库的连接也是加密的?

我用来连接 MySQL 的 PHP 代码是这样的:

使用标准端口可以正常工作。但是,如果我将其更改为 Stunnel 端口,则会出现连接超时错误。显然我错过了一些东西;任何帮助和建议表示赞赏!谢谢!

0 投票
1 回答
9532 浏览

c# - SslStream 客户端无法完成与 stunnel 服务器的握手

我有一个完全可操作的系统,其中基于 openssl 的客户端与 openssl 服务器交互。每个客户端都有自己的证书,由服务器验证。已使用 openssl (X509, pem) 生成证书。它们是自签名的。

我现在想写一个基于 SslStream 的测试客户端。我使用了 SslStream 类文档中的客户端示例。

我的 SslStream 客户端无法完成握手。stunnel 抱怨客户端没有发送其证书。这在 Wireshark 中得到确认(证书长度:握手消息中的 0)。

我的客户显示以下异常:

内部异常:收到的消息出乎意料或格式错误

这就是我加载证书的方式:

我尝试检索证书的各种属性(例如:GetSerialNumberString())。有用。验证方法返回 false。这是我接下来要调查的事情。

我如何设置我的 SslStream 似乎并不重要(结果相同):

与身份验证相同:

SelectLocalCertificate被调用(两次)并返回我的证书。ValidateServerCertificate目前从未被调用(令我惊讶)。

我该如何调试呢?如果你能解决我的问题就更好了。

更新

我添加了一个函数来根据文档中的X509Chain 示例执行链验证。它显示证书上的各种信息,包括两条有趣的消息:

最后,我真的没有比我打电话验证时更多的细节了。

的输出openssl verify cert.pem没有报告任何异常。

更新

我从 pem 中提取了私钥和证书,并生成了一个 cert.pfx (pkcs12)。在我的个人密钥库中导入 cert.pfx 没有问题。在我的证书详细信息中,我可以看到一个小图标,指示附加的私钥。

我修改了我的客户以从我的个人商店中检索证书。但我遇到了同样的失败。

0 投票
1 回答
13377 浏览

php - 安全 WebSocket (wss://) 在 Firefox 上不起作用

我有一个有效的 WebSocket 非安全应用程序。但是我的网站使用 https 并且我需要一个安全的 WebSocket 连接来避免 Firefox 抱怨连接不安全的事实。

我将php-websocket-server用于我的带有 PhP 5.2.9 的 WebSocket 服务器,所以当我使用 WebSocket 安全时,我无法使用 openssl_decrypt 函数解密数据包。

这就是为什么我使用stunnel来解密客户端使用 wss 发送的数据包,为此我将客户端 WebSocket 绑定到 12345 端口,将服务器 WebSocket 绑定到 54321 端口,然后我在服务器模式下添加了一个 stunnel:

使用此配置,我的应用程序通过 https + wss 在 Chrome 上运行良好。Sec-WebSocket-Version但是在 Firefox 上,握手期间出现问题,标题中似乎Sec-WebSocket-Key没有。我不明白,因为它通过 http + ws 在 Firefox 上工作。

在此先感谢您的帮助。

编辑:我为端口 12345 上的证书添加了一个例外,现在握手进展顺利,因为我认为 Firefox 现在有Sec-WebSocket-Key.

这里是 Firefox 的工作标头请求(大于 Chrome 请求):

0 投票
2 回答
711 浏览

node.js - 你能从 Stud > HAProxy > nginx 获得 X-forwarded-for 吗?

我正在使用 Stud 终止 SSL 并将请求转发到 HAProxy,HAProxy 确定它是否是 WebSocket 连接并将请求转发到 Node.js 或 nginx。我遇到的问题是我似乎无法从 Stud 获得 X-forwarded-for。当我在 stud conf 中设置 write-ip 时,我的请求失败。

这样的堆栈可能吗?

0 投票
2 回答
11646 浏览

haproxy - 使用多个前端部分减少 haproxy acl 中的重复

我正在使用带有 stunnel 处理 SSL 的 haproxy(并使用代理模式来保留来自 haproxy 的原始 IP)。

我有几个 acl 测试根据域、标头或路径重定向到不同的后端。

问题是无论您是通过 http 还是 https 进入,这些都是相同的,但我必须在配置中复制它们。有什么办法可以减少重复?

这是一个示例配置:

http-in 和 https-in 有不同的端口,并且 https-in 必须 sepcify accept-proxy 以便 stunnel 可以使用代理协议将用户的原始 IP 传递给它。但除此之外,它们是相同的,并且应该始终相同。有没有办法减少这种重复?(haproxy 1.5-dev)

0 投票
0 回答
4195 浏览

django - 带有 SSL 的 Django 运行服务器

我一直在尝试按照此处列出的 stunnel 使用 django runserver 和 ssl 的说明进行操作:

如何像使用“runserver”的非 https 连接一样轻松地测试与 Django 的 https 连接?

但我遇到了一些麻烦。我有 stunnel 和两个运行服务器,每个都在虚拟环境中运行。每个人似乎都在自己工作。

stunnel.pem 看起来像这样:

dev_https 看起来像这样:

当我尝试访问

这是发生的事情:

Stunnel,执行:

显示了这一点:

服务器执行:

显示:

服务器执行:

显示:

最后,浏览器中的网页请求显示标准 chrome 错误:

我会很感激任何关于我可以改变什么或我做错了什么的建议。谢谢您的帮助!

更新 我现在收到此错误消息:

0 投票
1 回答
4011 浏览

ssl - Stunnel 是否支持非加密连接?

关于 Stunnel 的 1 个问题。我想将 Stunnel 用作 Internet 的 FIX(财务信息交换)网关,以支持 SSL 和非 SSL 连接。Stunnel 可以在没有任何加密的情况下进行吗?我刚刚尝试使用普通套接字,但看起来 Stunnel 拒绝了连接说“无效协议”或其他内容。

0 投票
1 回答
1119 浏览

apache - 如何使 haproxy 将 https 请求传递给后端服务器?

我使用 HAproxy 进行负载平衡,并使用 Stunnel 进行 SSL 。我使用 tomcat 作为容器(后端服务器)。在我的配置中,Stunnel + HAproxy 在一台机器上(ubuntu 12.04),而 tomcat 在另一台机器上。部署在 tomcat 上的 Web 应用程序仅对登录页面使用 HTTPS 请求。当我尝试使用 HTTPS 请求登录时,侦听端口 443 的 Stunnel 解密请求并转发到 HAproxy,HAproxy 将其传递给 HTTP 格式的 Tomcat。由于我对登录页面的 tomcat 配置请求必​​须采用 HTTPS 格式,因此我的 tomcat 重定向请求并要求以 HTTPS 格式发出相同的请求。在这种情况下,创建了无限循环......

如何配置 HAproxy 或 Stunnel 将 HTTPS 请求传递给 Tomcat……

0 投票
1 回答
732 浏览

node.js - 如何在 stunnel 后面的 node.js/connect 应用程序中设置 req.connection.proxySecure

我们有一个 node.js/express 应用程序位于 stunnel 后面,用于 ssl 终止。我无法弄清楚如何强制使用安全会话 cookie。查看会话中间件源:

我显然必须将 req.connection.proxySecure 设置为 true,但我不知道该怎么做。似乎 stunnel 应该“通过 HTTP”进行通信,但 stunnel 无法设置标头。所以我很茫然。我应该尝试在会话中间件之前通过自定义中间件在本地设置它,还是在某处的连接配置变量中设置它?

谢谢你的帮助