golang项目访问https的问题

一个golang的项目,使用了腾讯云的短信服务,腾讯云的短信服务URL是https://yun.tim.qq.com/v5/tlssmssvr/sendsms?sdkappid=xxxxx&random=xxxx,在开发平台,可以正常使用。编译后部署到生产平台,短信发不出来了。为了定位问题,找了一台干净的测试机,部署后也发不出短信,因此判断生产平台的云服务器没有问题。

在测试机上,经过调试,终于定位错误信息:x509: failed to load system roots and no roots provided

搜索错误信息,首先找到这篇《go语言在不支持cgo的情况下访问https链接》,看完内容后直觉这个解决方法不对,太不优美了。接着看到《go语言获取https报错x509: failed to load system roots》这篇,思路和解决方法没错了。因为我使用的是freebsd平台,所以对应的软件包名肯定不一样。尝试openssl等几个软件包,都没有解决问题。直到看到https://wiki.freebsd.org/Docker里有这么一段:

Common Errors


Missing /usr/docker! Please create / mount a ZFS dataset at this location.
The "docker" dataset needs to be created.


Error response from daemon: Get https://index.docker.io/v1/search?q=centos: x509: failed to load system roots and no roots provided
The "ca_root_nss" package is not installed.

豁然开朗,原来是缺少了ca_root_nss这个package。装上就搞定了。

转载于:https://my.oschina.net/ankexun/blog/1554108

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值