簡體   English   中英

中級證書與Go的私鑰不匹配

[英]Intermediate certificate doesn't match private key with Go

我正在嘗試構建將運行https應用程序的Go(golang)程序。

我真的遇到SSL中間證書的麻煩,不知道問題出在哪里,是我的證書還是Go語言應用程序提供的。

因此,我從SSL CA提供者那里獲得了兩個證書文件:服務器證書和中間證書。

因此,我試圖從我的go代碼中加載這些證書,如下所示:

tlsConfig := &tls.Config{}
tlsConfig.Certificates = make([]tls.Certificate, 2)
var err error
tlsConfig.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不太了解,但是根據Golang SSL TCP套接字證書配置,您只需將中間證書包含在與服務器證書相同的PEM文件中即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM