我正在嘗試構(gòu)建一個(gè)運(yùn)行 https 應(yīng)用程序的 Go (golang) 程序。我真的在使用 SSL 中間證書(shū)時(shí)遇到了問(wèn)題,不知道問(wèn)題出在哪里,是來(lái)自我的證書(shū)還是來(lái)自 Go 語(yǔ)言應(yīng)用程序。因此,我從 SSL CA 提供商那里獲得了兩個(gè)證書(shū)文件:服務(wù)器證書(shū)和中間證書(shū)。所以,我試圖從我的 go 代碼中加載這些證書(shū),如下所示: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)該代碼在此行上第二次加載證書(shū)時(shí)失敗tls.LoadX509KeyPair(intermeddiateCertificate, privateKey)錯(cuò)誤是證書(shū)與私鑰不匹配。中間證書(shū)是否應(yīng)該與 SSL/TLS 世界中的私鑰匹配?或者它沒(méi)有必要。如果不需要,那么如何在沒(méi)有私鑰的情況下加載證書(shū)?我應(yīng)該回到我的 CA 并告訴他們?yōu)槭裁粗虚g證書(shū)與私鑰不匹配?
中間證書(shū)與 Go 的私鑰不匹配
慕碼人2483693
2022-01-04 18:53:04