ssl — подписание публичного сертификата x509 в переполнении стека

Я хотел бы знать, как я могу подписать файл в php. Мне нужно подписать XML-файл. Когда я выполняю этот кусок кода, он дает мне следующую ошибку:

Предупреждение: openssl_sign (): предоставленный параметр ключа не может быть приведен к закрытому ключу в C: \ xampp \ htdocs \ test \ index.php в строке 35

Предупреждение: openssl_free_key () ожидает, что параметр 1 будет ресурсом, логическое значение указано в C: \ xampp \ htdocs \ test \ index.php в строке 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);

Исправлена:
Итак, у меня было неправильное представление о том, что я должен подписывать данные публичным сертификатом, а также я не загружал данные должным образом. Я изменил это, и это сработало 🙂
Вот функция, которую я использовал:

$ pkeyid = openssl_pkey_get_private (file_get_contents (‘./ private.key’));

2

Решение

Путь «./public.cer», скорее всего, является ошибкой. Попробуйте вместо этого использовать абсолютный путь. Второе предупреждение говорит о том, что $ pkeyid является логическим значением, и именно это openssl_pkey_get_public () возвращает при ошибке.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]