【发布时间】:2015-11-10 11:52:02
【问题描述】:
我使用Ratchet 创建了一个 PHP websocket。此 Websocket 正在我的内部服务器 10.0.4.160 的端口 8080 上运行。
我正在尝试从启用了 SSL“又名使用 https 协议”的网站连接到它。
当尝试从 FireFox 浏览器连接到 websocket 时,我从浏览器中遇到安全问题,因为我在安全/非安全连接之间混合。这是我在 javascript 控制台中看到的错误。
SecurityError: 操作不安全。
为了解决安全问题,我创建了一个stunnel 代理,它允许我接受10.0.4.160:58443 上的连接并将其连接到端口127.0.0.1:8080。这个安全隧道应该允许我保持与 websocket 的连接安全并绕过浏览器的安全检查。
但是,每次我尝试连接到 websocket 时都会出错
到“wss://10.0.4.160:58443/”的 WebSocket 连接失败:错误 连接建立:net::ERR_TIMED_OUT
这是用于连接 websocket 的 jQuery 脚本
<script>
$(function(){
if ("WebSocket" in window)
{
var conn = new WebSocket('wss://10.0.4.160:58443');
conn.onopen = function(e) {
console.log("Connection established!");
showMessage('Connected', 0);
};
conn.onmessage = function(e) {
console.log(e.data);
showMessage(e.data, 1);
};
conn.onclose = function(e) {
console.log(e.code);
console.log(e.reason);
};
conn.onerror = function(e) {
console.log(e);
};
} else {
console.log('Your browser does not support Websocket!');
}
function showMessage(msg, append){
if(append){
$('#status').append('<br>' + msg);
return;
}
$('#status').text(msg);
}
});
</script>
这是我当前的 stunnel 配置
[websockets]
client = yes
accept = 58443
connect = 8080
verify = 2
CAfile = ca-certs.pem
debug = 7
OCSPaia = yes
如何从浏览器连接到 websocket? 谢谢
【问题讨论】:
-
在我们看到您的 PHP 服务器设置了棘轮之前投了反对票
标签: javascript jquery ssl websocket stunnel