第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何確認來自 Go 客戶端的 gRPC 流量是 TLS 加密的

如何確認來自 Go 客戶端的 gRPC 流量是 TLS 加密的

Go
BIG陽 2022-06-27 17:28:09
我在 Go 中編寫了一個示例 gRPC 客戶端和服務(wù)器,兩者都配置為服務(wù)器身份驗證的 TLS??蛻舳?gRPC 調(diào)用成功,給我的印象是 TLS 配置正確,否則如果 TLS 握手失敗,我希望客戶端失敗并且不發(fā)出 gRPC 請求(即不默認為明文)。然而,當我將 Wireshark 連接到該網(wǎng)絡(luò)以嗅探 TCP 數(shù)據(jù)包時,我得到的結(jié)果讓我感到困惑。我沒有看到任何帶有 TLS 的數(shù)據(jù)包,例如我沒有看到 TLS CLIENT HELLO 數(shù)據(jù)包。這是因為我誤解了我在 Wireshark 中看到的內(nèi)容,還是我的 gRPC 客戶端實際上在執(zhí)行純文本 gRPC?客戶端代碼如下所示,請注意grpc.withTransportCredentials我認為這意味著它將使用 TLS 或失敗,但絕不是純文本:    // block the dial until connection is successful or 3 sec timeout    dialOptions := []grpc.DialOption{        grpc.WithBlock(),        grpc.WithTimeout(3 * time.Second),    }    // Load TLS Configuration    tlsCredentials, err := LoadTLSCredentials()    if err != nil {        log.Fatalf("Failed to load TLS credentials: %v", err)    }    dialOptions = append(dialOptions, grpc.WithTransportCredentials(tlsCredentials))    // Dial the gRPC server    log.Printf("Dialing %v", *address)    conn, err := grpc.Dial(*address, dialOptions...)    if err != nil {        log.Fatalf("Failed to connect to the server: %v", err)    }    defer conn.Close()    // then this application sets up a gRPC request, and logs the response to stdout,    // in my testing stdout shows the expected gRPC response, so I'd assume TLS is working.func LoadTLSCredentials() (credentials.TransportCredentials, error) {    rootCA, err := ioutil.ReadFile("ca.cert")    if err != nil {        return nil, err    }    certPool := x509.NewCertPool()    if !certPool.AppendCertsFromPEM(rootCA) {        return nil, fmt.Errorf("Failed to add rootCA to x509 certificate pool")    }    config := &tls.Config{        MinVersion: tls.VersionTLS12,        RootCAs: certPool,    }    return credentials.NewTLS(config), nil}這是 Wireshark 的屏幕截圖,沒有顯示 TLS 數(shù)據(jù)包而我希望類似于以下內(nèi)容,清楚地顯示一些 TLS 活動(不是我的應(yīng)用程序,圖片來自網(wǎng)絡(luò),用于說明目的)我在 Ubuntu 16.04 上運行 Wireshark v2.6.10。源 IP 和目標 IP 與我的 gRPC 客戶端和服務(wù)器 IP 匹配(兩者都是同一 docker 網(wǎng)絡(luò)上的 docker 容器)。并不是說它真的很重要,但是從我的客戶端代碼中可以看出,我在客戶端上共享一個根 CA 證書(自簽名)。我可以這樣做,因為我同時部署了客戶端和服務(wù)器。
查看完整描述

2 回答

?
森林海

TA貢獻2011條經(jīng)驗 獲得超2個贊

您應(yīng)該右鍵單擊數(shù)據(jù)包列表,然后選擇“解碼為..”菜單項,然后選擇“tls”以強制wireshark將此tcp端口中的流量解析為TLS。



查看完整回答
反對 回復 2022-06-27
?
莫回無

TA貢獻1865條經(jīng)驗 獲得超7個贊

正如@steffanUllrich 在評論中解釋的那樣,這是一個可以更好地配置 Wireshark 以顯示 TLS 的案例。我確認 gRPC 交換確實受 TLS 保護。



查看完整回答
反對 回復 2022-06-27
  • 2 回答
  • 0 關(guān)注
  • 172 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號