首頁  >  文章  >  後端開發  >  為什麼我的 Golang HTTP 請求在 Windows XP 上失敗並顯示「x509:由未知頒發機構簽署的憑證」?

為什麼我的 Golang HTTP 請求在 Windows XP 上失敗並顯示「x509:由未知頒發機構簽署的憑證」?

Barbara Streisand
Barbara Streisand原創
2024-11-11 20:03:03278瀏覽

Why Does My Golang HTTP Request Fail with

Windows XP 中Golang HTTP x509 的證書驗證錯誤

問題:

運行時在Windows XP 上使用Golang 1.9.2 的客戶端應用程序,使用者在HTTP GET 和POST 請求期間遇到錯誤“x509:由未知頒發機構簽署的證書”,即使證書有效且由受信任的頒發機構簽署。

背景:

當客戶端無法驗證伺服器的憑證鏈時,會發生此錯誤,因為驗證所需的中間憑證未安裝在主機系統的憑證儲存中。

嘗試的解決方案:

為了解決該問題,用戶根據其他來源的建議實現了以下程式碼:

tr := &http.Transport{
    TLSClientConfig: &tls.Config{InsecureSkyVerify: true},
}

但是,此解決方案是不正確的,因為欄位名稱是“InsecureSkipVerify”而不是“InsecureSkyVerify”。

正確解決方案:

正確的實現應該是:

tr := &http.Transport{
    TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}

警告:

使用「InsecureSkipVerify」時請務必小心,因為它會停用伺服器憑證驗證和主機名稱檢查。這可能會使客戶端面臨安全風險,例如中間人攻擊。建議使用自訂驗證或「VerifyConnection」或「VerifyPeerCertificate」來實現安全連線。

以上是為什麼我的 Golang HTTP 請求在 Windows XP 上失敗並顯示「x509:由未知頒發機構簽署的憑證」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn