首頁 >後端開發 >Golang >如何在 Go 中使用自簽名憑證發出 HTTPS 請求?

如何在 Go 中使用自簽名憑證發出 HTTPS 請求?

Susan Sarandon
Susan Sarandon原創
2024-12-08 18:02:12302瀏覽

How to Make HTTPS Requests with Self-Signed Certificates in Go?

如何在Go 中使用憑證發送HTTPS 請求

向運行在不同連接埠上的伺服器發出HTTPS 請求時,這是常見的遇到與憑證相關的錯誤。發生這種情況是因為伺服器的憑證是由未知的機構簽署的,並且預設的 HTTP 用戶端不信任自簽署的憑證。

要解決此問題,我們需要使用適當的 CA 憑證手動驗證伺服器的憑證。以下是如何在Go 中完成此操作的逐步指南:

  1. 獲取CA 證書:

    • 獲取用於簽署伺服器的CA 憑證(例如“rootCA.crt”)證書。
  2. 建立憑證池:

    • 初始化 x509.CertPool 並使用下列指令將 CA>
    • 初始化 x509.CertPool憑證加入其中caCertPool.AppendCertsFromPEM(caCert).
  3. 設定TLS 選項:

    • 配置TLS 選項:
  4. 在 tls.Config 中將 caCertPool 設定為 RootCA。
    • 使用自訂傳輸建立HTTP 用戶端:
    • 建立一個使用自訂http.Transport 設定的http .Client步驟3 中的TLS 選項。
  5. 將傳輸上的 TLSClientConfig 設定為配置的 tls.Config。

範例程式碼:

注意:

注意:如果🎜>注意:如果🎜>注意:如果🎜>注意:如果🎜>請問CA 證書,您可以建立自己的CA 證書。有關如何產生自簽名憑證的說明,請參閱外部資源。

以上是如何在 Go 中使用自簽名憑證發出 HTTPS 請求?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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