我有一个特殊的需求:在我的软件中,我生成了一个TXT文档,我需要使用CAdES方法对此文件进行签名,并生成一个分离的P7 S文件,但我没有找到有关如何执行此操作的任何信息。
那么我的一步一步
- 生成包含我需要的所有内容的此TXT
- 使用有效的PFX证书(我已经拥有)对此进行签名
- 基于此以前的签名生成P7 S文件
我尝试使用函数openssl_pkcs7_sign,但我只有一个HTTP 500错误,没有捕获任何异常,所以我真的不知道发生了什么。
这是一个简单的例子,我尝试了(我做了很多不同的调用这个函数,这是最后一个):
// the message you want to sign so that recipient can be sure it was you that
// sent it
$data = 'Here is the content';
// save message to file
$fp = fopen("licence.txt", "w");
fwrite($fp, $data);
fclose($fp);
// encrypt it
if (openssl_pkcs7_sign("license.txt", "licence.txt.p7s", "my_pfx_file.pfx",
array("file://some_folder/my_pfx_file.pfx"),
null
)) {
// message signed - send it!
exit('foi');
} else {
exit('falhou');
}
我希望有人能帮帮我!
1条答案
按热度按时间6ioyuze21#
根据documentation,密钥和证书应该是实体、“file://...”格式的字符串或文件的内容。
由于某种原因,我不能使用'file://...'格式,所以我不得不使用
openssl_x509_read
作为证书,openssl_pkey_get_private
作为密钥。另外,如果你在某个参数中使用数组,它期望密钥在0索引,密码在1。对于任何错误,请查看
openssl_error_string
,只要您从这些方法中得到false,它就会包含任何错误。希望这有帮助!