问题

线上服务器使用curl访问苹果接口,访问报错如图

curl执行报错记录

无论用ip访问还是域名访问都报错,本地访问接口地址正常,ping也正常,只有线上服务器访问报错

排查解决

由于没有遇到过类似情,同地域其他服务器都能正常访问,只有一个项目服务器不能访问,初步怀疑DNS问题,通过切换DNS发现还是没能解决,排除DNS问题。

通过curl -v 更详细的看下报错

curl -X GET https://appleid.apple.com/auth/keys -v

curl执行报错记录_第1张图片

从上图发现报错和NSS有关,查阅资料发现可能是nss需要升级,所以找测试环境的同类型服务器测试升级

yum install nss libcurl -y;yum update nss libcurl -y

恢复正常
curl执行报错记录_第2张图片

总结

该问题是由于生产环境使用centos6.x版本的curl及nss版本过低引起,升级版本后可以正常访问