2017-03-09 17 views
14

はWebSocketのサーバーに接続できません。..のWebSocket - 接続の確立中にエラー:ネット:: ERR_INSECURE_RESPONSE

私はnginx

証明書を使用して、まったく同じprivate.keypublic.crtを使用するには、自己署名でありますしかし、nginxのhttp.ListenAndServe()持つ行がコメント解除されているときws://を使用した場合のWebSocketサーバーが動作

経由でHTTPS経由でWebサイトの残りの部分と正常に動作します

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) 
    } 
} 
+0

クライアント側を共有できますか? – Elad

+0

'new WebSocket( 'wss:// domain:8000 /');' – clarkk

+0

私はこのメッセージを受け取るのと非常に似たエラーがあります。私のコンピュータには3つのブラウザがあり、Chrome(57)だけがこのエラーをスローします。なぜか言わない。 –

答えて

6

最新バージョンのChromeでは、SHA-1証明書が安全でないとみなされているようです。おそらく、SHA-2証明書に移動する必要があります。

5

私は同じエラーがありましたが、あなたのURLはわかりません。

HTTPSにはhttps://localhost:port、WSにはwss://127.0.0.1:portを使用しました。 したがって、https://localhosthttps://127.0.0.1の証明書を受け入れる必要がありました(Chromeのみ)。

+0

「証明書を受け入れる」方法を詳しく説明できますか? –

+1

私は両方のURLを閲覧し、ブラウザで証明書を受け入れました:) – Appyx

0

私は、キーファイルがすべて間違っている場所を探していることを知るまで、この問題と他の多くのことで苦労していました。

まず、証明書とキーの両方が.PEMファイルである必要があります。私はLet's Encryptを使用していますので、正しい場所(/etc/letsencrypt/live/domainName)を見つけるのが少し楽でした。

私が行ったようにウィザードを使用してSSL証明書をインストールした場合、証明書プロバイダについて少し調べる必要があります。あなたのキーがインストールされている場所を調べ、 "cert"と "key"に適した.PEMファイルを探します。

関連する問題