所以我有一堆运行websockets(ws)的express节点服务器,我希望过渡到使用wss(websockets secure)。我已经运行了https服务器,wss甚至使用自签名证书在本地主机上运行。但我的问题是让它在生产环境中工作。对于wss连接,自签名证书似乎会无声地关闭(用户不会得到签名提示)。当我尝试使用从域授权机构购买的证书时,我会得到"NET::ERR_cert_COMMON_NAME_INVALID",试图通过浏览器中的https直接访问节点服务器。对于wss连接请求,我会收到类似"连接被拒绝"的SSL错误。
购买的证书上的通用名称是我的域名,node.js服务器与我的域名没有连接(只是一个IP地址)。这就是造成麻烦的原因吗?如果是,当我购买证书时,如何输入什么作为通用名称?我可以使用为wss连接提供服务的节点服务器的ip地址吗?这是唯一的方法吗?
有没有办法在我想运行wss的每个node.js服务器上购买证书?我知道多域证书,但对它们了解不多。
如果使用https连接,则使用websocket指定域名而不是ip地址
例如:
test_conn = new WebSocket('wss://domain_name.com/websocket_test')
代替:
test_conn = new WebSocket('wss://210.56.78.90/websocket_test')