无法从连接中读取:远程错误:tls:未知证书



我在Go中创建了一个低级HTTP/2服务器,对于测试,我想使用自签名证书。我使用openssl和这个命令来生成我的证书:

openssl req -x509 -newkey rsa:4096 -nodes -sha256 -subj /CN=localhost -keyout private.pem -out cert.pem

一切似乎都很好,当我curl -kv https://127.0.0.1:443 --http2-prior-knowledge时,我得到了这个握手

当我尝试与chrome连接时,我得到这个错误代码NET::ERR_CERT_AUTHORITY_INVALID,当然我选择继续,但我的服务器退出与这个could not read from connection:remote error: tls: unknown certificate的连接。

我试过制作不同的证书,但运气不好。我怎么能有一个TLS连接与我的服务器和chrome?

下面是我如何设置tls:
cer, err := tls.LoadX509KeyPair("cert.pem", "private.pem")
if err != nil {
log.Println(err)
return
}
config := &tls.Config{Certificates: []tls.Certificate{cer}}
ln, err := tls.Listen("tcp", "localhost:443", config) 
if err != nil {
log.Println(err)
return
}
defer ln.Close()

Chrome给你NET::ERR_CERT_AUTHORITY_INVALID正是因为你的证书是自签名的。要做到这一点,你需要创建自己的CA(证书颁发机构),将其添加到Chrome受信任,然后与该CA签署您的服务器证书(以便Chrome可以验证证书是由受信任的CA签署的)。

查看如何做到这一点:让Chrome接受自签名的本地主机证书

相关内容

  • 没有找到相关文章

最新更新