【发布时间】:2017-12-09 10:55:01
【问题描述】:
我在负载均衡器后面的 AWS 实例上安装了 rabbitmq 服务器。我目前能够使用 js 从 http url 连接、发送和接收消息。但是,当我从 https url 尝试相同的壮举时,我无法成功地保持连接。
下面的 sn-p 显示了我到目前为止采取的几种策略:
var ws = null;
if (window.location.protocol.indexOf("https") >= 0){
//1 ws = new WebSocket('wss://myelbpublicdns.com:15674/ws');
//2 ws = new WebSocket('wss://myec2publicdns.com:15674/ws');
//3 ws = new WebSocket('wss://myurl.com:15674/ws');
} else {
ws = new WebSocket('ws://' + awshost + ':15674/ws');
}
var client = Stomp.over(ws);
client.connect(username, password, on_connect, on_error, '/');
所以通过 ws: 连接可以正常工作。 将选项 1 连接到我的 ELB 会得到一个 SSL_ERROR_BAD_CERT_DOMAIN 说明证书适用于 myurl.com,这很有意义
将选项 2 连接到 ec2 实例会获得 SSL_ERROR_RX_RECORD_TOO_LONG
将选项 3 直接连接到 myurl.com 会收到 400 错误请求。
端口 15674 在我的 ELB 上打开,并附加了 ssl 证书。
感谢所有关于如何让我的 wss: 连接正常工作的想法!
【问题讨论】:
标签: amazon-web-services ssl amazon-ec2 rabbitmq elastic-load-balancer