Openssl SSL_connect()报错定位

背景:

在Openharmony设备上通过openssl和云端通信,SSL_connect报错,返回值-1.

定位:

1、排除header参数问题,把所有参数值打印出来。

Openssl SSL_connect()报错定位_第1张图片

2、执行SSL_get_error,打印SSL报错信息,列出所有可能

打印出SSL_ERROR_SSL,上网搜了下,可能是server、client端没定义,尝试在ssl_connect前插入ssl_set_connect_state,标识是客户端,没起作用。也可能是CA证书校验相关问题。

3、尝试调用ERR_get_error接口,打印报错日志

long iErr = ERR_get_error();

char* strERrr = ERR_error_string(iErr, NULL);

日志打印结果是:

很奇怪,证书确认是OK的,在linux环境运行也没有问题,在设备上证书验证失败。猜测是因为设备系统时间不对,查看设备时间,发现是2017年,找到报错原因。

修改:

运行date 013016012022.30,修改当前时间,调试成功。

你可能感兴趣的:(ssl,https,linux)