Помогите разобраться с сертификатами, пожалуйста!

B_Yurchenko

Новичок
Такая тема... Есть определенные данные, заключенные в $data, к примеру. И есть сертификат "sertif.sert" и ключ 111.key Нужно подписать $data и отправить на удаленный сервер. Как отправить - вопросов нет. А вот, как подписать - мучаюсь уже третий день. В инете много информации о pem-кодированных сертификатах, о ключах. Я этого начитался и еще больше запутался. Помогите, пожалуйста, с кодом!!!
 

B_Yurchenko

Новичок
Я видел в инете код, когда методом HTTP POST сертификат и открытый ключ отправляют вместе с данными. Это и есть "подписать"?
 

jrip

Новичок
А какая конкретно задача перед вами стоит?
Вообще копать я думаю надо где-то тут
 

B_Yurchenko

Новичок
Мне нужно отправить на платежный сервер данные в формате Json, которые должны быть подписаны сертификатом. У выданного мне сертификата расширение sert. Есть пара ключей. Т.о. я понимаю, что имеется в виду, что я могу подписать данные с открытым ключем, а проверить целостность ответа своим закрытым. Вообще-то я совсем запутался! Ключи имеют расширение key и sec. Что делать с этим всем я не знаю. В интернете ничего толком не написано...
 

jrip

Новичок
Вообще не зная что за платежный сервис и не имея возможности попробовать, трудно помочь чем-то конкретным.
На вашем месте я бы сразу же обратился в техподдержку сервиса.
Или это ваш удаленны сервер? Тогда что находится на нем?

пробовали через openssl_sign() и openssl_verify() ? на php.net есть примеры.
 

B_Yurchenko

Новичок
Это сервер платежной системы. В ответ на свои запросы, я получаю от них следующее:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request</h2>
<hr><p>HTTP Error 400. The request is badly formed.</p>
</BODY></HTML>

И дело все в том, что не пойму, как работать с вот этим.... Расшифруйте, пожалуйста! "Перед отправкой сообщения с помощью специализированной криптобиблиотеки формируется электронно-цифровая подпись (ЭЦП). Тело сообщения и его ЭЦП оформляются криптобиблиотекой в виде сообщения-контейнера" У меня есть такая библиотека в формате *.dll И даже есть примеры, как подцепить ее на дельфях и си. Можно как-то цеплять ее php? Также с ней есть файлы сертификата и ключей, как я писал выше...
 

jrip

Новичок
Ну для начала я бы вам посоветовал почитать про основы криптографии, ключи подписи и т.п.
В вашем же случае они даже явно пишут "с помощью специализированной криптобиблиотеки".
Т.е. непонятно что там за алгоритм и не факт, что это все возможно реализовать на php.
Возможен вариант написать консольное приложение на С, которое будет формировать подпись и уже его запускать из php.

Я думаю, вам все-таки стоит обратиться к ним в техподдержку, либо искать человека который работал с данной конкретной платежной системой.
 

B_Yurchenko

Новичок
Ребята, вроде бы как это DSA. Поиск по Гуглу ничего не дал. М.б. у кого есть пример реализации или полезная ссылка? Оч. благодарен буду!
(ответ от суппорта платежной системы еще не получил...)
 

jrip

Новичок
Как платежная система то хотя бы называется? Или это секрет?
 
Сверху