8

我正在尝试将带有肥皂消息的 SSL 证书发送到服务器,并且只是设法使 cURL 接受证书(通过 OpenSSL 放置 .pfx 文件来吐出 .pem 文件)并且不返回“无法设置私有密钥文件”(显然私钥必须保留其“包属性”),但是它现在返回令人兴奋的新错误:

SSL证书问题,验证CA证书是否OK。详细信息:错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败

我尝试使用以下方法设置 CA 证书:

curl_setopt($soap_do, CURLOPT_CAINFO, $caFile);

但这对我拥有的根文件和中间 ca 文件都没有结果。

禁用此检查:

curl_setopt($soap_do, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($soap_do, CURLOPT_SSL_VERIFYPEER, 0);

给我带来了新的问题:

错误:14094412:SSL 例程:SSL3_READ_BYTES:sslv3 警报错误证书

几周来,这一直是我的眼中钉,虽然新的错误消息意味着变化,但我不确定这是否意味着进步。任何关于缺少什么/我做错了什么的建议或建议将不胜感激。

4

2 回答 2

1

sslv3 alert bad certificate表示缺少 CA 信息。使用--cacert参数并添加 CA 证书。

unable to set private key file表示通过的证书--cert不是与私钥匹配的公钥

于 2021-09-10T15:18:55.723 回答
1

CA 包很可能是错误的。验证路径和访问权限,也许尝试设置绝对路径。如果这没有帮助,请获取CA 捆绑包并将其设置为相同curl_setopt($soap_do, CURLOPT_CAINFO,'cacert.pem');

于 2018-01-26T12:29:46.523 回答