文章

试用长安链过程中遇到的问题记录-某云厂商ssl通信异常

刚开始是基于内部节点来开发测试,等到部署到测试环境(上云)直接爆出了UNAVAILABLE: io exception异常。通过社区了解这是大多数人都会遇到过问题,社区解答是云厂商拦截问题,解决方法基本上都是重新换云厂商。

但我们生产环境是需要支持所有云服务商的,于是在各种社区、加群最后得到两种解决方案:
第一种是直接把tls_host_name改成localhost, 这种在长安链官方教程默认创建的证书下是可以用的。

为什么?首先云盾不会拦截localhost,不会导致ssl建立连接时直接reset。其次,默认官方教程创建的链,证书支持localhost域名,所以ssl验证也能通过。最后,grpc通信是基于node_addr来连接的,所以也不会影响连接通信。

综合以上因素,测试环境下,直接使用localhost就可以了。另外,如果是用的ca服务来生成证书,默认域名是不包含localhost的,需要自己在ca服务配置里配置下localhost

第二种是在正式环境下,在证书生成的时候,指定一个正式备案过的域名,然后tls_host_name使用这个正式域名即可。

License: