【发布时间】: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