Embedded C项目(nrf9160开发板)无法连接googleapis.com证书获取咨询
nRF9160连接googleapis Geolocation API的SSL证书获取方案
证书获取方法
你之前用的openssl.com证书和example.com自带证书都不匹配googleapis的CA签发体系,所以无法通过TLS握手,按以下操作获取正确证书:
- 本地安装openssl工具后,执行命令拉取googleapis的完整证书链:
openssl s_client -showcerts -connect www.googleapis.com:443 < /dev/null - 在命令输出的末尾,找到最后一组
-----BEGIN CERTIFICATE-----和-----END CERTIFICATE-----包裹的内容,完整复制后保存为后缀为.pem的文件,这就是googleapis对应的根CA证书,可长期使用。
不要提取输出里靠前的证书,靠前的是站点叶证书和中间CA证书,叶证书有效期只有3个月,过期后会导致连接失败,根CA证书有效期普遍在10年以上,无需频繁更换。
适配nRF9160开发环境
- 如果你的项目要求用DER格式证书,用openssl执行格式转换命令:
openssl x509 -outform der -in 你保存的pem证书路径 -out googleapis_root.der - 参考你之前连接example.com的示例代码逻辑,把新的证书写入nRF9160调制解调器的安全存储区,绑定到你TLS连接配置对应的安全标签即可。
额外排查项
- 先确认你用的蜂窝运营商网络没有屏蔽googleapis的IP段,可先用AT指令测试IP连通性,排除网络层面的访问限制
- 检查TLS配置的域名校验是否开启,确保填写的SNI域名和实际访问的googleapis域名一致
内容的提问来源于stack exchange,提问作者Jeremy Dorn
相关产品推荐
相关产品推荐

