Php Curl错误:错误:14094418:SSL例程:ssl3_读取字节:tlsv1警报未知ca

Php Curl错误:错误:14094418:SSL例程:ssl3_读取字节:tlsv1警报未知ca,php,curl,openssl,payment-gateway,Php,Curl,Openssl,Payment Gateway,我正在为一个网站进行支付系统集成。目前,我正在使用xampp在本地计算机上进行测试。我已经向银行服务器提交了一个.csr文件,然后他们向我提供了.crt文件。我也有一个.key文件 当我尝试使用include certificate file path(.crt)和.key文件向银行服务器提交证书和某些值时,它会抛出错误: Curl错误:错误:14094418:SSL例程:ssl3_读取字节:tlsv1警报未知ca 我的代码是: $twpg_gateway_url = '<bankurl

我正在为一个网站进行支付系统集成。目前,我正在使用xampp在本地计算机上进行测试。我已经向银行服务器提交了一个
.csr
文件,然后他们向我提供了
.crt
文件。我也有一个
.key
文件

当我尝试使用include certificate file path(
.crt
)和
.key
文件向银行服务器提交证书和某些值时,它会抛出错误:

Curl错误:错误:14094418:SSL例程:ssl3_读取字节:tlsv1警报未知ca

我的代码是:

 $twpg_gateway_url = '<bankurl>';
    $twpg_cert_file = getcwd().'<.crtfile with path>'; 
    $twpg_key_file = getcwd().'<.keyfile with path>';
    $twpg_key_password = '';
    $curl = curl_init();

    $options = array(
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HEADER => false,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_SSL_VERIFYHOST => false,
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_POST => true,
        CURLOPT_USERAGENT => 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)',
        //CURLOPT_VERBOSE        => true,
        CURLOPT_URL => $twpg_gateway_url . '/Exec',
        CURLOPT_POSTFIELDS => $request,
        CURLOPT_HTTPHEADER => array('Content-Type: text/xml'),
        CURLOPT_TIMEOUT => 30
    );

    if ($twpg_cert_file != '') {
        $options[CURLOPT_SSLCERT] = $twpg_cert_file;
        $options[CURLOPT_SSLKEY] = $twpg_key_file;
        $options[CURLOPT_SSLKEYPASSWD] = $twpg_key_password;
    }

    curl_setopt_array($curl, $options);

    $response = curl_exec($curl);
    if(!$response)
    {
        echo "Curl Error : " . curl_error($curl);
    }
    curl_close($curl);

    return $response;
$twpg\u gateway\u url='';
$twpg_cert_file=getcwd();
$twpg_key_file=getcwd();
$twpg_key_password='';
$curl=curl_init();
$options=array(
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_头=>false,
CURLOPT_FOLLOWLOCATION=>true,
CURLOPT_SSL_VERIFYHOST=>false,
CURLOPT_SSL_VERIFYPEER=>false,
CURLOPT_POST=>true,
CURLOPT_USERAGENT=>“Mozilla/4.0(兼容;MSIE 5.01;Windows NT 5.0)”,
//CURLOPT_VERBOSE=>true,
CURLOPT_URL=>$twpg_网关_URL'/Exec',
CURLOPT_POSTFIELDS=>$request,
CURLOPT_HTTPHEADER=>array('Content-Type:text/xml'),
CULLOPT_超时=>30
);
如果($twpg\u证书文件!=''){
$options[CURLOPT\u SSLCERT]=$twpg\u证书文件;
$options[CURLOPT\u SSLKEY]=$twpg\u key\u文件;
$options[CURLOPT_SSLKEYPASSWD]=$twpg_key_password;
}
curl_setopt_数组($curl$options);
$response=curl\u exec($curl);
如果(!$response)
{
echo“Curl Error:.Curl\u Error($Curl);
}
curl_close($curl);
返回$response;

是否在
getcwd
之后添加目录分隔符?文件权限?-您遇到了什么错误?@belthazorNv不感谢您的寻址,我现在已经这样做了,但现在它抛出了我:Curl错误:错误:14094418:SSL例程:ssl3\u读取字节:tlsv1警报未知ca。。。。您知道这可能是什么原因吗?您需要指定用于路径验证的CA。将CA添加到根信任的位置?你是省略了一些代码还是没有这样做?还可以看到其中一些选项看起来很危险,例如。您确定应该在处理财务数据的应用程序中使用它们吗?我怀疑它是否能通过PCI审核。还要在setopt调用中添加错误检查!如果设置选项时出现问题,setopt和setopt_数组将返回bool(false),而代码将完全忽略此问题!(添加带有运行时异常的检查)是否在
getcwd
之后添加目录分隔符?文件权限?-您遇到了什么错误?@belthazorNv不感谢您的寻址,我现在已经这样做了,但现在它抛出了我:Curl错误:错误:14094418:SSL例程:ssl3\u读取字节:tlsv1警报未知ca。。。。您知道这可能是什么原因吗?您需要指定用于路径验证的CA。将CA添加到根信任的位置?你是省略了一些代码还是没有这样做?还可以看到其中一些选项看起来很危险,例如。您确定应该在处理财务数据的应用程序中使用它们吗?我怀疑它是否能通过PCI审核。还要在setopt调用中添加错误检查!如果设置选项时出现问题,setopt和setopt_数组将返回bool(false),而代码将完全忽略此问题!(添加带有运行时异常的检查)