首頁 > 後端開發 > Golang > 主體

為什麼我在 Go 中使用 GoDaddy 的 SSL 憑證時收到「不完整的憑證鏈」錯誤?

Linda Hamilton
發布: 2024-10-27 08:46:30
原創
236 人瀏覽過

Why Am I Getting an

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。

其他提示:

  • 考慮在 TLSConfig 中設定密碼套件以提高安全性。
  • 進行更改後,重新測試您的 SSL 憑證使用 https://www.ssllabs.com 來驗證憑證等級的提升。

以上是為什麼我在 Go 中使用 GoDaddy 的 SSL 憑證時收到「不完整的憑證鏈」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!