Go TLS 連線失敗,並顯示「x509:憑證依賴舊版通用名稱欄位」錯誤
嘗試建立與MLS 的TLS 連結時使用Go,可能會出現「連線失敗:x509:憑證依賴舊版通用名稱欄位」錯誤。此問題源自於憑證驗證檢查,這些檢查已更新為憑證身分的主題備用名稱 (SAN) 優先於通用名稱 (CN) 欄位。
根本原因:
用於 TLS 驗證的憑證依賴舊版通用名稱欄位而不是 SAN,後者被認為對於識別主機而言更安全。目前版本的 Go 有更嚴格的憑證驗證檢查,強制使用 SAN。
解決方案:
要解決此問題,您需要透過確保它包括 SAN。這涉及使用適當的 SAN 欄位產生新憑證或重新配置現有憑證以包含它們。
修復來源:
檢查新證書:
使用下列指令檢查新產生的證書,確認SAN 欄位是否存在於新產生的憑證中:
openssl x509 -in server.crt -noout -text
注意:
產生憑證後藉助SAN,您可以將其與Go 程式碼一起使用來建立TLS 連接,而不會遇到「x509:憑證依賴於舊版通用名稱欄位」錯誤。可能需要更新 Go 程式碼中的憑證檔案並重新啟動連線程序以確保使用新憑證。
以上是為什麼我的 Go TLS 連線失敗並顯示「x509:憑證依賴舊版通用名稱欄位」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!