Ответ 1
Похоже, что новейшая версия Chrome теперь отвергает сертификаты SHA-1 как небезопасные. Вероятно, вам нужно перейти на сертификаты SHA-2.
Невозможно подключиться к серверу websocket.
Я использую те же самые private.key
и public.crt
, которые я использую с nginx
Сертификат является самозаверяющим, но отлично работает с остальной частью сайта через HTTPS через nginx
Сервер websocket работает при использовании ws://
, когда строка с http.ListenAndServe()
раскоментирована
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)
}
}
Похоже, что новейшая версия Chrome теперь отвергает сертификаты SHA-1 как небезопасные. Вероятно, вам нужно перейти на сертификаты SHA-2.
У меня была такая же ошибка, но я не знаю ваших URL.
Я использовал https://localhost:port
для HTTPS и wss://127.0.0.1:port
для WS.
Поэтому я должен был принять сертификат для https://localhost
и https://127.0.0.1
(только в Chrome).
Я боролся с этой проблемой и многими другими, пока не понял, что искал все мои ключевые файлы не в том месте!
Во-первых, cert и ключ должны быть .PEM файлами. Я использую Let Encrypt, поэтому мне было легче найти нужное место (которое было /etc/letencrypt/live/domainName ).
Если вы использовали мастер для установки своего SSL-сертификата, как и я, вам нужно провести небольшое исследование поставщика сертификатов. Просто найдите, где ваши ключи установлены ими, и найдите файлы .PEM, которые кажутся подходящими для "cert" и "key".