У меня есть PHP-код, который подписывает запрос, используя openssl_sign:
if (($pkeyid = openssl_pkey_get_private($keystr)) === false)
{
$this->setError('Cannot retrieve private key from: ' . $this->getParam('keyFile'));
return false;
}
if (!openssl_sign($message, $sign, $pkeyid, OPENSSL_ALGO_SHA1))
{
$this->setError('Cannot sign with private key');
return false;
}
Работает нормально, когда код запускается в CLI, но в строке Apache (php 5.2.17 как модуль) с !openssl_sign($message, $sign, $pkeyid, OPENSSL_ALGO_SHA1)
приводит к segfault (11).
$pkeyid = openssl_pkey_get_private($keystr)
дает действительный ключ.
Кто-нибудь сталкивался с такой ошибкой? Какое решение, если есть? Альтернативы, совместимые с openssl_sign? Как это можно было быстро диагностировать?