我正在嘗試構建一個運行 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 并告訴他們為什么中間證書與私鑰不匹配?
中間證書與 Go 的私鑰不匹配
慕碼人2483693
2022-01-04 18:53:04
