gpt4 book ai didi

php - 带有密码的 JKS 文件,用于访问金融学院的 API

转载 作者:太空宇宙 更新时间:2023-11-03 15:13:37 25 4
gpt4 key购买 nike

我从一家金融机构收到了一个用密码加密的 JKS 文件。 API 使用端口 444。当我将 JKS 文件和密码与 SoapUI(首选项 -> SSL 设置 -> KeyStore [文件] + KeyStore 密码)一起使用时,我能够发送和接收 XML 请求和响应。没有 JSK 文件和密码,如果我尝试访问 URL,则浏览器不会加载 API 页面。

安装文件并向浏览器提供密码后(Firefox -> 选项 -> 高级 -> 查看证书 -> 导入);页面结果显示Not proper request' [XML format](即能够访问带有证书的页面)。

我将文件转换为 P12/PEM(使用:keytool -importkeystore -srckeystore keystore.jks -srcstoretype JKS -deststoretype PKCS12 -destkeystore keystore.p12)——它的工作方式与上面相同(对于 SoupUI 和浏览器)。

现在我喜欢在 IIS 开发服务器和 Apache 生产服务器上的 PHP 代码中使用这个文件 (JKS/PEM)。在执行过程中,我得到:错误:SSL 证书问题:无法获取本地颁发者证书

注意:具有相同密码的相同 JKS 文件被另一个具有 Python 环境的供应商使用正常。

请提出解决方案。

谢谢。

最佳答案

首先需要将 JKS 文件转换为您的 PHP 代码可以使用的 PEM。

那么应该这样做:

$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_PORT => <Port#>, //Post
CURLOPT_CAPATH => $ca_path, //CA Path ***and not filename
CURLOPT_CAINFO => $cert_file, //Certificate File
CURLOPT_SSLCERT => $key_file, //SSL file
CURLOPT_SSLKEYPASSWD => $key_password, //Public Key
CURLOPT_HTTPHEADER => $aHeaders, //Header
CURLOPT_POST => 1, //Send POST
CURLOPT_POSTFIELDS => $xml, //To Fetch Data
CURLINFO_HEADER_OUT => $properties, //Application's Username and password
);
$ch = curl_init($url);
curl_setopt_array($ch, $options);
$content = curl_exec($ch);
$err = curl_errno($ch);
$errmsg = curl_error($ch);
$header = curl_getinfo($ch);
curl_close($ch);

$header['errno'] = $err;
$header['errmsg'] = $errmsg;
$header['content'] = $content;

关于php - 带有密码的 JKS 文件,用于访问金融学院的 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41471112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com