天天看點

GRPC 用戶端伺服器通信遇到錯誤: E0226 No match found for server name

E0226 15:36:51.396000000 27004 src/core/tsi/ssl_transport_security.cc:1437] No match found for server name: 192.168.4.147.
           

在搭建gRPC C/S程式的時候, 需要測試區域網路環境.

原本設定為localhost通信沒問題, 但是設定為IP後出現了錯誤. 從Google沒找到合理的解釋. 但是從 簡書 找到了.

<grpc 報錯:No match found for server name> [20200706發現此文連結丢失, 是以增加一點解決方法的說明]

裡面描述了是因為gRPC 不支援IP作為主機位址, 隻能在證書裡面設定HOST為Domain然後自己走域名解析的管道. 文章圖文并茂, 寫的很清晰, 但是剛開始沒有搜到, 是因為錯誤資訊不是很一緻, 這裡增加詳細的錯誤列印資訊.

E0226 15:36:51.396000000 27004 src/core/tsi/ssl_transport_security.cc:1437] No match found for server name: 192.168.4.147.

注: 用戶端不會報告錯誤, 隻有服務端程式會報告錯誤.

解決方法:

 1.  生成SSL證書的時候, 證書中指定域名就可以了.

 2. 用戶端(PC端)在Host檔案中添加自定義域名的解析, 保證用戶端可以找到服務端的IP位址.

 3. 同步替換服務端與用戶端的證書.