gpt4 book ai didi

javascript - 禁用 WebSocket 证书验证

转载 作者:行者123 更新时间:2023-12-04 11:14:41 70 4
gpt4 key购买 nike

我需要禁用 WebSocket 的证书验证,因为我使用的是自签名证书。

我在这个问题中找到了Websocket SSL connection rejectUnauthorized参数,但这不再起作用。事实上,如果你去 Mozilla's documentation ,只有两个参数:URL 和协议(protocol)版本。

在另一个问题或网站(不记得确切)中,我发现如果我先去 https://server_ip ,我会收到有关无效证书请求的提示,询问我是否要继续。然后我可以使用 wss://server_ip 进行连接它会起作用,而且确实如此,但这不适用于我的情况。

因此,我需要在创建 WebSocket 期间禁用证书验证。我怎样才能做到这一点?

我用于测试的代码是 https://www.websocket.org/echo.html 中的代码。 .我替换了 websocket = new WebSocket(wsUri);websocket = new WebSocket(wsUri, {rejectUnauthorized: false}); (在测试期间,还添加了链接问题中的 protocolVersion: 8 参数)

编辑:我需要使用自签名证书。 Let's Encrypt 是毫无疑问的,因为它需要一个子域,然后我需要管理成百上千的子域。该应用程序分为三个部分,将部署给每个客户(数百个):

  • 管理控制台:使用子域和 LE 证书。
  • WebSocket 服务器 1:需要加密连接,只使用 IP
  • WebSocket Server 2:只需要使用 IP
  • 的加密连接

    最佳答案

    我可能会迟到,但是因为我遇到了同样的问题并且没有真正的答案,所以我转而阅读了实现 documentation
    方法

    connect(requestUrl, requestedProtocols, [[[origin], headers], requestOptions])
    将建立到给定 requestUrl 的连接。 requestedProtocols 表示客户端支持的多个子协议(protocol)的列表。远程服务器将选择它支持的最佳子协议(protocol),并在建立连接时将其发回。 origin 是一个可选字段,可在用户代理方案中用于标识包含导致请求连接的任何脚本内容的页面。 requestUrl 应该是标准的 websocket url。
    headers 应该为 null 或指定附加任意 HTTP 请求 header 与请求一起发送的对象。这可用于传递访问 token 等内容,以便服务器可以在决定接受并打开完整的 WebSocket 连接之前验证身份验证/授权。
    请求选项 应为 null 或指定 的对象附加配置选项传递给 http.request 或 https.request。这可用于传递自定义代理以从 HTTP 或 HTTPS 代理服务器后面启用 WebSocketClient 使用。
    如果要传递 headers,则必须指定 origin,如果要传递 requestOptions,则必须指定 origin 和 headers。 origin 和 headers 参数可以作为 null 传递。
    因此,正如文档所述,除非您对这些参数中的任何一个进行了特定配置,否则您应该传递 null。这解决了迷宫。结果是:

    var client = new WebSocket();
    client.connect(WSSrvUrl, null, null, null, {rejectUnauthorized: false});
    //or depending on the implementation you're using (this applies to Nodejs and web browser implementation:
    var client = new WebSocket(WSSrvUrl, null, null, null, {rejectUnauthorized: false});

    就是这样。
    可持续发展目标

    关于javascript - 禁用 WebSocket 证书验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38242334/

    70 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com