问题标签 [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.
ssh - 当 ssh 被管理员阻止时 ssh 进入 aws EC2 实例
我有一个新的 aws EC2 实例,在家一切正常。现在 ssh 访问在大学被阻止了!我想知道如何绕过它并通过 ssh 进入我的 ec2 实例。我有什么方法可以做到?另外,我怎样才能使用 stunnel 来做到这一点?简短的解释与解决方案一起受到赞赏。
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 端口,则会出现连接超时错误。显然我错过了一些东西;任何帮助和建议表示赞赏!谢谢!
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 没有问题。在我的证书详细信息中,我可以看到一个小图标,指示附加的私钥。
我修改了我的客户以从我的个人商店中检索证书。但我遇到了同样的失败。
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 请求):
node.js - 你能从 Stud > HAProxy > nginx 获得 X-forwarded-for 吗?
我正在使用 Stud 终止 SSL 并将请求转发到 HAProxy,HAProxy 确定它是否是 WebSocket 连接并将请求转发到 Node.js 或 nginx。我遇到的问题是我似乎无法从 Stud 获得 X-forwarded-for。当我在 stud conf 中设置 write-ip 时,我的请求失败。
这样的堆栈可能吗?
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)
django - 带有 SSL 的 Django 运行服务器
我一直在尝试按照此处列出的 stunnel 使用 django runserver 和 ssl 的说明进行操作:
如何像使用“runserver”的非 https 连接一样轻松地测试与 Django 的 https 连接?
但我遇到了一些麻烦。我有 stunnel 和两个运行服务器,每个都在虚拟环境中运行。每个人似乎都在自己工作。
stunnel.pem 看起来像这样:
dev_https 看起来像这样:
当我尝试访问
这是发生的事情:
Stunnel,执行:
显示了这一点:
服务器执行:
显示:
服务器执行:
显示:
最后,浏览器中的网页请求显示标准 chrome 错误:
我会很感激任何关于我可以改变什么或我做错了什么的建议。谢谢您的帮助!
更新 我现在收到此错误消息:
ssl - Stunnel 是否支持非加密连接?
关于 Stunnel 的 1 个问题。我想将 Stunnel 用作 Internet 的 FIX(财务信息交换)网关,以支持 SSL 和非 SSL 连接。Stunnel 可以在没有任何加密的情况下进行吗?我刚刚尝试使用普通套接字,但看起来 Stunnel 拒绝了连接说“无效协议”或其他内容。
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……
node.js - 如何在 stunnel 后面的 node.js/connect 应用程序中设置 req.connection.proxySecure
我们有一个 node.js/express 应用程序位于 stunnel 后面,用于 ssl 终止。我无法弄清楚如何强制使用安全会话 cookie。查看会话中间件源:
我显然必须将 req.connection.proxySecure 设置为 true,但我不知道该怎么做。似乎 stunnel 应该“通过 HTTP”进行通信,但 stunnel 无法设置标头。所以我很茫然。我应该尝试在会话中间件之前通过自定义中间件在本地设置它,还是在某处的连接配置变量中设置它?
谢谢你的帮助