1
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

4

1 に答える 1

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");
于 2013-01-08T13:03:46.243 に答える