亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么在我的 Go 代碼中忽略 MinVersion 標志?

為什么在我的 Go 代碼中忽略 MinVersion 標志?

Go
繁星coding 2022-10-10 17:51:05
我正在嘗試調試與給定主機的失敗連接。我已經記錄了通過瀏覽器向該主機發出的成功請求以及通過下面的 Go 代碼發出的不成功請求的數據包捕獲: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 數據包后,我注意到成功的請求使用 TLSv1.3 而不成功的請求使用 TLSv1.2。我上面的代碼指定我只想在我的請求中使用 TLSv1.3,但無論出于何種原因,請求仍會嘗試使用 TLSv1.2。我試過咨詢用 go 編寫的各種 http 客戶端示例,并確認我使用了正確的語法。有什么想法我在這里做錯了嗎?
查看完整描述

1 回答

?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

TLS 1.3 握手也以 TLS 1.2 開頭Client Hello

http://img1.sycdn.imooc.com//6343eb230001294612980338.jpg

如果我們在 golang 代碼中指定 TLS 1.3,在supported_versions擴展中只有一個TLS 1.3


http://img1.sycdn.imooc.com//6343eb2f00014ffd06900206.jpg

如果服務器不支持 TLS 1.3 或任何其他原因,握手階段連接失敗,則看起來像是 TLS 1.2 連接失敗。



查看完整回答
反對 回復 2022-10-10
  • 1 回答
  • 0 關注
  • 101 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號