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没找到合理的解释. 但是从 简书 找到了.

 [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. 同步替换服务端与客户端的证书.

你可能感兴趣的:(python,网络编程)