首頁  >  文章  >  後端開發  >  為什麼我的 Go TLS 連線失敗並顯示「x509:憑證依賴舊版通用名稱欄位」?

為什麼我的 Go TLS 連線失敗並顯示「x509:憑證依賴舊版通用名稱欄位」?

Barbara Streisand
Barbara Streisand原創
2024-10-28 02:22:31902瀏覽

Why Does My Go TLS Connection Fail with

Go TLS 連線失敗,並顯示「x509:憑證依賴舊版通用名稱欄位」錯誤

嘗試建立與MLS 的TLS 連結時使用Go,可能會出現「連線失敗:x509:憑證依賴舊版通用名稱欄位」錯誤。此問題源自於憑證驗證檢查,這些檢查已更新為憑證身分的主題備用名稱 (SAN) 優先於通用名稱 (CN) 欄位。

根本原因:

用於 TLS 驗證的憑證依賴舊版通用名稱欄位而不是 SAN,後者被認為對於識別主機而言更安全。目前版本的 Go 有更嚴格的憑證驗證檢查,強制使用 SAN。

解決方案:

要解決此問題,您需要透過確保它包括 SAN。這涉及使用適當的 SAN 欄位產生新憑證或重新配置現有憑證以包含它們。

修復來源:

  1. 建立CSR(憑證簽章要求): 使用OpenSSL 等工具建立包含所需主機名稱的SAN 字段的CSR。
  2. 使用根 CA 簽署 CSR: 使用頒發原始憑證以簽署 CSR 的根憑證授權單位 (CA),使用包含的 SAN 建立新憑證。

檢查新證書:

使用下列指令檢查新產生的證書,確認SAN 欄位是否存在於新產生的憑證中:

openssl x509 -in server.crt -noout -text

注意:

產生憑證後藉助SAN,您可以將其與Go 程式碼一起使用來建立TLS 連接,而不會遇到「x509:憑證依賴於舊版通用名稱欄位」錯誤。可能需要更新 Go 程式碼中的憑證檔案並重新啟動連線程序以確保使用新憑證。

以上是為什麼我的 Go TLS 連線失敗並顯示「x509:憑證依賴舊版通用名稱欄位」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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