openssl_pkcs7_sign('manifest.json', 'signature', $certdata, $privkey, array(), PKCS7_BINARY | PKCS7_DETACHED, 'AppleWWDRCA.pem');
它创建一个空的签名文件,没有错误消息。
但我可以使用OpenSSL命令行制作正确的签名(使用相同的WWDR副本,p12,pkpass文件):
openssl smime -binary -sign -certfile AppleWWDRCA.pem -signer passcertificate.pem -inkey passkey.pem -in manifest.json -out signature -outform DER -passin pass:123123
答案 0 :(得分:0)
检查$ certdata和$ privkey的值,如果它们是文件名,则前缀为'file://'。
正如@Charles所说,你的错误日志是寻找线索失败原因的最佳位置。
我们曾经使用过以下命令,但在基准测试后我们发现exec表现更好。
openssl_pkcs7_sign(
"manifest.json",
"signature",
"file://" . $certdata,
array("file://" . $privkey, $keyPassword),
array(),
PKCS7_BINARY|PKCS7_NOATTR|PKCS7_DETACHED,
"/path/to/AppleWWDRACA.pem");