我正在嘗試調(diào)試與給定主機(jī)的失敗連接。我已經(jīng)記錄了通過瀏覽器向該主機(jī)發(fā)出的成功請求以及通過下面的 Go 代碼發(fā)出的不成功請求的數(shù)據(jù)包捕獲:package mainimport ( "crypto/tls" "log")func main() { log.SetFlags(log.Lshortfile) conf := &tls.Config{ //InsecureSkipVerify: true, MinVersion: tls.VersionTLS13, MaxVersion: tls.VersionTLS13, } conn, err := tls.Dial("tcp", "x.x.x.x:443", conf) if err != nil { log.Println(err) return } defer conn.Close() n, err := conn.Write([]byte("hello\n")) if err != nil { log.Println(n, err) return } buf := make([]byte, 100) n, err = conn.Read(buf) if err != nil { log.Println(n, err) return } println(string(buf[:n]))}在檢查成功和不成功請求中的 Client Hello 數(shù)據(jù)包后,我注意到成功的請求使用 TLSv1.3 而不成功的請求使用 TLSv1.2。我上面的代碼指定我只想在我的請求中使用 TLSv1.3,但無論出于何種原因,請求仍會嘗試使用 TLSv1.2。我試過咨詢用 go 編寫的各種 http 客戶端示例,并確認(rèn)我使用了正確的語法。有什么想法我在這里做錯了嗎?
1 回答

偶然的你
TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個贊
TLS 1.3 握手也以 TLS 1.2 開頭Client Hello
如果我們在 golang 代碼中指定 TLS 1.3,在supported_versions
擴(kuò)展中只有一個TLS 1.3
如果服務(wù)器不支持 TLS 1.3 或任何其他原因,握手階段連接失敗,則看起來像是 TLS 1.2 連接失敗。
- 1 回答
- 0 關(guān)注
- 93 瀏覽
添加回答
舉報(bào)
0/150
提交
取消