php - 在 PHP 中签署公共(public) x509 证书

标签 php ssl x509certificate

我想知道如何在 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 是 bool 值,这正是 openssl_pkey_get_public() 在出错时返回的内容。

关于php - 在 PHP 中签署公共(public) x509 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46304760/

相关文章:

Python线程挂了?

Python SSL 套接字服务器

java - 浏览器集成ssl证书

ssl - 如何使用私钥生成SSL证书?

php - 第一条记录未显示 UNION ALL

php - 如何向 phil sturgeon 发送 DELETE 请求 - codeigniter-restserver

c# - 客户端的 WCF 服务 - SSL 证书

javascript - ionic http POST 不适用于服务器

javascript - 从 tinyMCE 向图像添加类

java - 使用 PrivateKey、PublicKey 和 Certificate 对象设置 SSLContext