【问题标题】:Signing a public x509 certificate in PHP在 PHP 中签署公共 x509 证书
【发布时间】:2017-09-19 15:47:52
【问题描述】:

我想知道如何在 php.ini 中签署文件。我需要签署一个 XML 文件。当我执行这段代码时,它给了我以下错误:

警告:openssl_sign():提供的密钥参数不能强制转换为第 35 行 C:\xampp\htdocs\test\index.php 中的私钥

警告:openssl_free_key() 期望参数 1 是资源,布尔值在第 38 行的 C:\xampp\htdocs\test\index.php 中给出

代码是这个:

$data->save("test.xml");

$signature;
$pkeyid = openssl_pkey_get_public("./public.cer");
$path = 'test.xml';
openssl_sign($path, $signature, $pkeyid);
openssl_free_key($pkeyid);

固定: 好的,所以我对我应该使用公共证书签署数据这一事实有一个误解,而且我没有正确加载数据。我改变了它并且它起作用了:) 我用过的功能是这个:

$pkeyid = openssl_pkey_get_private(file_get_contents('./private.key'));

【问题讨论】:

标签: php ssl x509certificate


【解决方案1】:

路径“./public.cer”很可能是错误所在。尝试使用绝对路径。您的第二个警告是告诉您 $pkeyid 是布尔值,这正是 openssl_pkey_get_public() 在错误时返回的内容。

【讨论】:

猜你喜欢
  • 2010-09-25
  • 1970-01-01
  • 2014-06-17
  • 2019-08-09
  • 1970-01-01
  • 2014-10-18
  • 2016-08-24
  • 2018-04-22
相关资源
最近更新 更多