目录:
- 1、背景
- 2、测试结果
1、背景
今天帮忙客户排查问题,报错请求超时,但是ping客户的ip以及测试端口都是通的,最终不得不从中台服务器上发起请求客户回调接口,报错如下:
怀疑是客户的证书有问题,证书校验不通过导致的超时。
2、测试结果
跳过证书校验后,成功请求拿到了参数。证明是证书的问题,使用http的协议请求也是可以的。
导致错误的原因:
默认情况下,curl 会尝试根据系统上安装的默认CA验证 SSL 证书,
但是我们的server上的证书是在内网的CA申请的,本地电脑上没有相应根证书,所以验证失败。
解决方案:
- 使用curl -k, 跳过证书验证,不安全,开发的时候可以用,生产环境不建议使用
- 使用curl --cacert /path/to/ca.crt,指定server的根证书。将server的根证书下载到本地,curl请求的时候,使用–cacert带上根证书