喜欢从浏览器javascript使用TLS作为websocket客户端。
问题是服务器是通过与REST服务交谈来动态启动的,并且在启动时返回端点ip。即服务器是ec2 onstance,启动时具有新的唯一ip。该端点不具有dns名称,因此在执行tls时,证书将与ip匹配。
我有办法绕过dns名称检查,但仍然可以完成连接并享受加密会话的好处吗?
答案 0 :(得分:1)
问题的关键在于:如果您的SSL证书导致问题 任何类型的警告,wss:// WebSocket连接将立即生效 失败,并没有规范的方法来检测这一点。
您似乎正在使用发布到IP的自生成证书。证书通常发布到服务器名称,但也可以绑定到IP地址 Are SSL certificates bound to the servers ip address?
但在这种情况下,如果IP更改您的TLS连接将从客户端发出警告,因此浏览器将断开连接
您可以将带有动态IP的动态DNS与通配符证书一起使用。例如
颁发证书 * .domain.com
DNS
conn1.domain.com -> IP1
conn2.domain.com -> IP2
conn3.domain.com -> IP3
如果您无法使用完全动态的DNS,我可以建议使用固定范围的IP名称和颁发给此IP的证书。在启动时知道ip时选择适当的证书