Мне нужно создать отдельную подпись PKCS7 для использования с пропусками Apple Wallet.
private function createSignature()
{
$cert = '/etc/ssl/local.crt';
$key = '/etc/ssl/local.key';
$wwdr = '/var/www/app/storage/passes/AppleWWDRCA.cer';
$headers = [
'signing-time' => (new DateTime())->format('o-m-d H:i:s'),
];
return openssl_pkcs7_sign("$this->dir/manifest.json", "$this->dir/signature",
$cert, $key, $headers, PKCS7_DETACHED, $wwdr);
}
openssl_pkcs7_sign(): no certificates in file, /var/www/app/storage/passes/AppleWWDRCA.cer
AppleWWDRCA.cer
был загружен с https://www.apple.com/certificateauthority/. Точный сертификат, который я скачал, был WWDR Certificate (Expiring 02/07/23)
, Я просмотрел файл и подтвердил, что он не пустой. Я пропускаю шаг?
Проблема была решена путем добавления AppleWWDR.cer к моей цепочке для ключей и экспорта его из цепочки для ключей как .pem
файл.
Других решений пока нет …