在 PHP 中签署 public x509 证书
Signing a public x509 certificate in PHP
我想知道如何在 php 中签署文件。我需要签署一份 XML 文件。当我执行这段代码时,出现以下错误:
Warning: openssl_sign(): supplied key param cannot be coerced into a private key in C:\xampp\htdocs\test\index.php on line 35
Warning: openssl_free_key() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\test\index.php on line 38
代码是这个:
$data->save("test.xml");
$signature;
$pkeyid = openssl_pkey_get_public("./public.cer");
$path = 'test.xml';
openssl_sign($path, $signature, $pkeyid);
openssl_free_key($pkeyid);
修正:
好的,所以我误以为我应该使用 public 证书签署数据,而且我没有正确加载数据。我改变了它并且它起作用了:)
我用过的功能是这个:
$pkeyid = openssl_pkey_get_private(file_get_contents('./private.key'));
路径“./public.cer”很可能是错误。尝试改用绝对路径。你的第二个警告是告诉你 $pkeyid 是布尔值,这正是 openssl_pkey_get_public() returns 出错时的结果。
我想知道如何在 php 中签署文件。我需要签署一份 XML 文件。当我执行这段代码时,出现以下错误:
Warning: openssl_sign(): supplied key param cannot be coerced into a private key in C:\xampp\htdocs\test\index.php on line 35
Warning: openssl_free_key() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\test\index.php on line 38
代码是这个:
$data->save("test.xml");
$signature;
$pkeyid = openssl_pkey_get_public("./public.cer");
$path = 'test.xml';
openssl_sign($path, $signature, $pkeyid);
openssl_free_key($pkeyid);
修正: 好的,所以我误以为我应该使用 public 证书签署数据,而且我没有正确加载数据。我改变了它并且它起作用了:) 我用过的功能是这个:
$pkeyid = openssl_pkey_get_private(file_get_contents('./private.key'));
路径“./public.cer”很可能是错误。尝试改用绝对路径。你的第二个警告是告诉你 $pkeyid 是布尔值,这正是 openssl_pkey_get_public() returns 出错时的结果。