当前位置: 首页 > 知识库问答 >
问题:

PHP cURL->下载带有Certificate的文件

袁晟
2023-03-14

我有一个证书文件“cert. p12”和这个证书的密码“yxc123yxc”。有了这个,我可以对网站进行身份验证,下载一个xml文件。

我如何在php中做到这一点?尝试过这样做,但“$响应”是错误的。

$cert = "cert.p12";
$pass = "yxc123yxc";
$url  = "https://url.to.download";

$curlhandle = curl_init();

curl_setopt($curlhandle, CURLOPT_URL, $url);
#curl_setopt($curlhandle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlhandle, CURLOPT_PORT , 443); 
curl_setopt($curlhandle, CURLOPT_SSLVERSION, 3);
curl_setopt($curlhandle, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curlhandle, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($curlhandle, CURLOPT_SSLCERT, getcwd() . $cert);
curl_setopt($curlhandle, CURLOPT_SSLCERTPASSWD, $cert);
$response = curl_exec($curlhandle);

共有2个答案

徐俊人
2023-03-14

刚刚添加

curl_setopt($curlhandle, CURLOPT_SSLCERTTYPE, "P12"); 

到php代码

=

扈德容
2023-03-14

我猜证书的路径错误,因为PHP函数getcwd返回路径没有结尾斜杠。因此,您的证书路径可能如下所示:

/var/www/website/directorycert.p12

此外,对于编程来说,知道如何调试程序是绝对必要的。始终使用函数,这些函数会返回错误代码和您尝试调试的操作消息。还可以打印变量的值以查看它们是否包含所需的内容。

您还可以使用一些调试器(对于PHP,有一个称为Xdebug的调试器)。如果您将IDE与调试器连接,则不必手动打印变量的值,您可以单步执行脚本等。

 类似资料:
  • 我正在使用Reformation 2.0下载文件。问题是未调用<code>使 这是我的界面: 这是我的下载代码:

  • 我在从AWS下载上面的文件时遇到了一些麻烦。我试图用CouldBerry Explore和Java下载这个文件,但失败了。aws文档说我需要特殊的处理。(https://docs.aws.amazon.com/amazons3/latest/dev/usingmetadata.html)那么,你能告诉我如何用“:”下载这个文件吗? 以下是我的文件信息。 文件名:“E:\home\temp\test

  • 问题内容: 我在使用通过相对URL访问的字体时遇到问题。 当我访问网页时,字体不起作用,在控制台中,我得到以下信息: 通过将URL复制/粘贴到浏览器地址栏中来访问文件,这表明它是正确的URL,因为我可以下载字体。 问题答案: 乔纳森·邱(Jonathan Kew)对有关MozillaBugzilla条目的回应的提示: 我相信这是按设计工作的。AIUI,这里的问题是,对于从file:// URI加载

  • 我正在尝试加强我对asyncTask的了解,所以我按照教程下载了一个图像,但我不明白,我得到了一个错误的ArrayOutofBound索引,所以如果有人告诉我原因这里是代码,请告诉我为什么他迭代进度条最大 下面是堆栈跟踪01-20 03:37:40.607 407 5-4096/com.gamecodeschool.bodybuilder E/AndroidRuntime:致命异常:AsyncTa

  • 我需要用java创建一个rest服务,它将连接到另一个rest服务以下载文件。目前,我只需要将文件从另一个后端传输到客户机,但在将来会进行一些处理/转换。 对于我项目中的所有web服务,我们都使用spring rest(用于提供和使用服务)。 我的问题是,考虑到文件会很大,而且我不想遇到内存不足的错误,什么才是合适的方法呢。 其他一些帖子中的人建议在两端使用流,但这真的有可能吗?为此,我需要先将文

  • 我正试图用reactJS下载一个xlsx文件,但当我在下载后试图打开我的文件时,我收到了这条消息: “Excel无法打开文件‘file.xlsx’,因为文件格式或文件扩展名无效。请验证文件是否已损坏,以及文件扩展名是否与文件格式匹配。” 这是前端代码: 为什么我得到这个错误?请谁来帮帮我,我被困在这个3周 [编辑1] 我尝试下载的文件是在后端构建的,基本上我获取数据库上的值并使用Apache po