卷曲错误:错误:14094418:SSL例程:ssl3_read_bytes:tlsv1 alert unknown ca

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

当我尝试将证书和某些值提交给银行服务器时,包括证书文件路径( .crt </ code>)和 .key </ code > file,它会引发错误:</ p>


卷曲错误:错误:14094418:SSL例程:ssl3_read_bytes:tlsv1 alert unknown ca </ p>
</ blockquote>

我的代码是:</ p>

  $ twpg_gateway_url ='&lt; bankurl&gt;'; 
$ twpg_cert_file = getcwd()。'&lt; .crtfile with 路径&GT;';

$ twpg_key_file = getcwd()。'&lt; .keyfile with path&gt;';
$ twpg_key_password ='';
$ curl = curl_init();

$ options = array(
CURLOPT_RETURNTRANSFER =&gt; ; true,
CURLOPT_HEADER =&gt; false,
CURLOPT_FOLLOWLOCATION =&gt; true,
CURLOPT_SSL_VERIFYHOST =&gt; false,
CURLOPT_SSL_VERIFYPEER =&gt; false,
CURLOPT_POST =&gt; true,
CURLOPT_USERAGENT =&gt;' Mozilla / 4.0(兼容; MSIE 5.01; Windows NT 5.0)',
// CURLOPT_VERBOSE =&gt; true,
CURLOPT_URL =&gt; $ twpg_gateway_url。'/ Exec',
CURLOPT_POSTFIELDS =&gt; $ request,
CURLOPT_HTTPHEADER =&gt;数组('Content-Type:text / xml'),
CURLOPT_TIMEOUT =&gt; 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);

$ res ponse = curl_exec($ curl);
if(!$ response)
{
echo“Curl Error:”。 curl_error($ curl);
}
curl_close($ curl);

返回$ response;
</ code> </ pre>
</ div>

展开原文

原文

I'm working on a payment system integration for a website. For now I'm testing on a local computer with xampp. I have submitted a .csr file to the bank server, then they provide me the .crt file. I do have a .key file too.

When I try to submit the certificate and some value to the bank server with including certificate file path (.crt) and .key file, it throws the error:

Curl Error : error:14094418:SSL routines:ssl3_read_bytes:tlsv1 alert unknown ca

My code is:

 $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;

dongzhuo3059
dongzhuo3059 多数民众赞成我不明白,我是这个问题的新手,我不明白CA是什么,是否需要存储在项目文件中?或者是从CURL网站下载的那个?
2 年多之前 回复
dongyi1159
dongyi1159 还要为你的setopt调用添加错误检查!如果设置选项时出现问题,setopt和setopt_array将返回bool(false),您的代码完全忽略了!(添加运行时异常的检查)
2 年多之前 回复
drjyvoi734793
drjyvoi734793 其中一些选项看起来很危险,比如CURLOPT_SSL_VERIFYHOST=>false。您确定应该在处理财务数据的应用程序中使用它们吗?我怀疑它会通过PCI审核。
2 年多之前 回复
dpa89292
dpa89292 您需要指定用于路径验证的CA.您在哪里将CA添加到root信任?你没有省略某些代码或者你没有这样做吗?另请参阅HTTPS和SSL3_GET_SERVER_CERTIFICATE:证书验证失败,CA即可
2 年多之前 回复
dongyunwei8596
dongyunwei8596 对于解决问题并不是很感谢,我现在已经做到了但是现在它抛出了我:卷曲错误:错误:14094418:SSL例程:ssl3_read_bytes:tlsv1警告未知ca....你知道是什么原因引起的吗?
2 年多之前 回复
duanou2526
duanou2526 你在getcwd之后添加了目录分隔符吗?文件权限?-你得到的错误是什么?
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐