Impossible de se connecter au serveur websocket.
J'utilise exactement les mêmes private.key
et public.crt
que j'utilise avec nginx
Le cert est auto-signé mais fonctionne bien avec le reste du site via HTTPS via nginx
Le serveur websocket fonctionne avec ws://
lorsque la ligne avec http.ListenAndServe()
n'est pas commentée.
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)
}
}
Il semble que la dernière version de Chrome rejette maintenant les certificats SHA-1 comme non sécurisés. Vous devrez probablement passer aux certificats SHA-2.
J'ai eu la même erreur, mais je ne connais pas vos URL.
J'ai utilisé https://localhost:port
pour HTTPS et wss://127.0.0.1:port
pour WS . J'ai donc dû accepter le certificat pour https://localhost
et https://127.0.0.1
(uniquement dans Chrome).
J'étais aux prises avec ce problème et beaucoup d'autres jusqu'à ce que je réalise que je cherchais au mauvais endroit tous mes fichiers clés!
Tout d'abord, le cert et la clé doivent tous deux être des fichiers .PEM. J'utilise Let's Encrypt, il était donc un peu plus facile pour moi de trouver le bon endroit (qui était/etc/letsencrypt/live/domainName ).
Si vous avez utilisé un assistant pour installer votre certificat SSL comme moi, vous devrez effectuer une petite recherche sur le fournisseur de certificat. Il suffit de regarder où vos clés sont installées et de rechercher les fichiers .PEM qui semblent appropriés pour un "cert" et une "clé".