【问题标题】:Allowing websockets over https for local server允许本地服务器通过 https 使用 websocket
【发布时间】:2021-02-02 06:07:51
【问题描述】:

我需要为我所做的项目提供一些指导。 我在本地服务器中有一个现有的红色节点,它使用 websocket 将数据发送到我的主机中的域。通过 http 一切正常,但是当我将 https 用于我的域时出现了问题。我使用 websocket ws: 在此之前我将其更改为 wss: 以通过 https 工作,但它仍然无法正常工作,因为我意识到我的本地服务器也需要 SSL 证书。然后,我为我的本地服务器使用了自签名证书。它可以工作,但我必须在我的浏览器中手动输入我的本地服务器 DDNS 以首先允许 wss 然后返回我的托管域,我不能指望用户这样做。

我在本地服务器上使用了 DDNS,因为我没有静态 IP。我尝试要求我的 ISP 提供静态 IP,但在不久的将来无法完成。 因为我没有静态 IP,所以无法注册域,也无法使用 CA 证书作为本地服务器 SSL。

我的问题是:

  1. 有没有办法让 ws 在 https 上工作?
  2. 如果没有,当用户转到我的页面时,是否有办法通过按钮或提示在我的域页面上允许不安全的 wss?所以用户不必手动输入我的本地服务器 DDNS。
  3. 或您可能建议的其他方式。

【问题讨论】:

    标签: ssl websocket https node-red


    【解决方案1】:
    1. 不,Websocket 连接通过 HTTP 引导,通过 HTTPS 安全 Websocket 连接。 TLS 会话由 HTTPS 连接设置。

    2. 不清楚你在这里问什么。但是,让自签名证书与 websocket 连接一起使用的唯一方法是在尝试访问该站点之前将该证书安装到浏览器受信任的证书存储中。浏览器不会提示信任 websocket 连接的证书。

    3. 您可以通过正确的动态 DNS 设置使用 Letsencrypt。这是您在计算机上拥有一个固定域名和一个脚本的地方,该脚本会更新域名指向的 IP 地址。主机名将保持不变,因此颁发的证书将始终具有正确的 CN/SAN 条目。 Letsencrypt 证书由已存在于您的浏览器中的可信 CA 证书签名。

    【讨论】:

      猜你喜欢
      • 2021-03-09
      • 1970-01-01
      • 2021-08-02
      • 2016-11-19
      • 2013-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-22
      相关资源
      最近更新 更多