为了账号安全,请及时绑定邮箱和手机立即绑定

中间证书与 Go 的私钥不匹配

中间证书与 Go 的私钥不匹配

Go
慕码人2483693 2022-01-04 18:53:04
我正在尝试构建一个运行 https 应用程序的 Go (golang) 程序。我真的在使用 SSL 中间证书时遇到了问题,不知道问题出在哪里,是来自我的证书还是来自 Go 语言应用程序。因此,我从 SSL CA 提供商那里获得了两个证书文件:服务器证书和中间证书。所以,我试图从我的 go 代码中加载这些证书,如下所示:tlsConfig := &tls.Config{}tlsConfig.Certificates = make([]tls.Certificate, 2)var err errortlsConfig.Certificates[0], err = tls.LoadX509KeyPair(serverCertificate, privateKey)if err != nil {    log.Fatal(err)}tlsConfig.Certificates[1], err = tls.LoadX509KeyPair(intermeddiateCertificate, privateKey)if err != nil {    log.Fatal(err)}tlsConfig.BuildNameToCertificate()server := &http.Server{    ReadTimeout:    10 * time.Second,    WriteTimeout:   10 * time.Second,    MaxHeaderBytes: 1 << 20,    TLSConfig:      tlsConfig,    Addr:           ":443,}   app.RunServer(server)该代码在此行上第二次加载证书时失败tls.LoadX509KeyPair(intermeddiateCertificate, privateKey)错误是证书与私钥不匹配。中间证书是否应该与 SSL/TLS 世界中的私钥匹配?或者它没有必要。如果不需要,那么如何在没有私钥的情况下加载证书?我应该回到我的 CA 并告诉他们为什么中间证书与私钥不匹配?
查看完整描述

1 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

您没有中间证书的密钥,只有服务器证书的密钥。请注意,我对 Go 了解不多,但根据Golang SSL TCP 套接字证书配置,您只需将中间证书包含在与服务器证书相同的 PEM 文件中。


查看完整回答
反对 回复 2022-01-04
  • 1 回答
  • 0 关注
  • 230 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信