写了两个系统,系统A使用curl
去请求系统B,但是不知道为什么会报错
SSL certificate problem: certificate has expired
系统A使用了https
但是系统B没有使用https
系统A的SSL并未过期,而且在两个系统在同一台服务器时并未报错,所以不是SSL证书的问题
解决办法:
- 关闭curl对证书验证,可以解决,但是个人觉得这种东西还是不要乱动比较好
curl -H "Content-Type:application/json" -X POST --data '{"param1":1}' https://openapi.xxx.cn/api/getData -k
- 这里可以确定是服务器本地的证书过期,可以在官方下载最新的证书替换掉就可以了
curl-config --ca # 查看证书所在目录
# 切换到证书目录 系统不同可能证书所在目录不同,自己切换就可以 切换命令 cd 所在目录
# 备份一个原来的证书 备份的命令 mv 原文件名 备份文件名
curl -o ./cacert.pem "http://curl.haxx.se/ca/cacert.pem" -L -v # 下载最新的证书
# 将证书名称改成原本系统中一样的名字
完成,这样就可以直接使用了