websocket - 连接建立错误:net::ERR_INSECURE_RESPONSE

Posted

技术标签:

【中文标题】websocket - 连接建立错误:net::ERR_INSECURE_RESPONSE【英文标题】:websocket - Error in connection establishment: net::ERR_INSECURE_RESPONSE 【发布时间】:2017-03-09 15:20:26 【问题描述】:

无法连接到 websocket 服务器..

我使用与nginx 完全相同的private.keypublic.crt

证书是自签名的,但可以通过 nginx 通过 HTTPS 与网站的其余部分正常工作

http.ListenAndServe()的行被取消注释时,websocket服务器在使用ws://时工作

package main

import (
    "flag"
    "fmt"
    "log"
    "net/http"
)

const PORT uint = 8000

func main()
    host := parse_flags()

    hub := newHub()
    go hub.run()

    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) 
        serve(hub, w, r)
    )

    server_host := fmt.Sprintf("%s:%d", host, PORT)

    log.Println("Server listening on:", server_host)

    err := http.ListenAndServeTLS(server_host, fmt.Sprintf("/var/ini/ssl/%s/public.crt", host), fmt.Sprintf("/var/ini/ssl/%s/private.key", host), nil)
    //err := http.ListenAndServe(server_host, nil)
    if err != nil 
        log.Fatal("ListenAndServe:", err)
    

【问题讨论】:

你能分享你的客户端吗? new WebSocket('wss://domain:8000/'); 收到此消息时,我遇到了非常相似的错误。我的电脑上有三个浏览器,只有 Chrome (57) 会抛出这个错误。不知道为什么。 【参考方案1】:

我有同样的错误,但我不知道你的网址。

我将https://localhost:port 用于HTTPS,将wss://127.0.0.1:port 用于WS。 所以我不得不接受 https://localhosthttps://127.0.0.1 的证书(仅在 Chrome 中)。

【讨论】:

我浏览了两个网址并接受了浏览器中的证书:) 谢谢,我必须导航到 https://localhost:8080/ 接受开发证书【参考方案2】:

看起来最新版本的 Chrome 现在拒绝 SHA-1 证书,因为它不安全。您可能需要迁移到 SHA-2 证书。

【讨论】:

【参考方案3】:

我一直在为这个问题和许多其他问题苦苦挣扎,直到我意识到我在错误的地方寻找我的关键文件!

首先,证书和密钥都需要是 .PEM 文件。我正在使用 Let's Encrypt,因此我更容易找到正确的位置(即 /etc/letsencrypt/live/domainName)。

如果您像我一样使用向导安装 SSL 证书,那么您需要对证书提供者进行一些研究。只需查看他们将密钥安装在哪里,然后找到似乎适合“证书”和“密钥”的 .PEM 文件。

【讨论】:

以上是关于websocket - 连接建立错误:net::ERR_INSECURE_RESPONSE的主要内容,如果未能解决你的问题,请参考以下文章

ws 如何捕获:到 'ws:// 的 WebSocket 连接失败:连接建立错误:net::ERR_CONNECTION_REFUSED

websocket - 连接建立错误:net::ERR_INSECURE_RESPONSE

failed: WebSocket 在连接建立之前关闭

当我在 Open*** 后面时,浏览器在建立 WebSocket 连接一秒后关闭并显示错误 1006

在graphql客户端使用时无法建立WebSocket连接

Laravel Websockets - 错误:失败:连接建立错误:net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH