SSL 問題:GoDaddy 憑證的憑證鏈不完整
使用GoDaddy 的SSL 憑證設定HTTPS Web 伺服器時,您可能會遇到以下錯誤「該伺服器的憑證鏈不完整。」這可能是由於Go 程式碼中的設定錯誤造成的。
解決方案:
要解決此問題,請確保 ListenAndServeTLS() 中使用的憑證檔案包含完整的憑證憑證鏈。這包括伺服器的憑證、中間憑證(如果有)和根 CA 憑證。
在您的程式碼中,您目前正在載入主憑證檔案和私鑰,但缺少捆綁文件,通常包含中間憑證。
將以下行:
err := srv.ListenAndServeTLS("cert/myalcoholist.pem","cert/myalcoholist.key")
替換為:
cert, err := tls.LoadX509KeyPair("cert/myalcoholist.pem","cert/myalcoholist.key") if err != nil { log.Fatalf("server: loadkeys: %s", err) } pem, err := ioutil.ReadFile("cert/cert/sf_bundle-g2-g1.crt") if err != nil { log.Fatalf("Failed to read client certificate authority: %v", err) } if !certpool.AppendCertsFromPEM(pem) { log.Fatalf("Can't parse client certificate authority") } tlsConfig := &tls.Config{ ClientCAs: certpool, Certificates: []tls.Certificate{cert}, } srv := &http.Server{ Addr: "myalcoholist.com:443", Handler: n, ReadTimeout: time.Duration(5) * time.Second, WriteTimeout: time.Duration(5) * time.Second, TLSConfig: tlsConfig, } err := srv.ListenAndServeTLS("cert/myalcoholist.pem","cert/myalcoholist.key")
這將載入完整的憑證鏈並配置對應的 TLSConfig。
其他提示:
以上是為什麼我在 Go 中使用 GoDaddy 的 SSL 憑證時收到「不完整的憑證鏈」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!