Взаимодействие по SSL
Для аутентификации соединений с серверами ЮMoney вам нужен сертификат, выданный удостоверяющим центром ООО НКО «ЮМани» (NBCO YooMoney). Чтобы его получить, вам нужно создать запрос на сертификат (в формате CSR), заполнить заявку на получение сертификата и отправить запрос и заявку на сертификат по электронной почте своему менеджеру в ЮMoney.
Получение сертификата
Для генерации запроса на сертификат в формате CSR используйте утилиту OpenSSL.
Шаг 1. Создание приватного ключа
Выполните команду:
openssl genrsa -aes256 -out private.key 2048
Введите пароль и подтвердите. Например:
Enter pass phrase for private.key: 12345
Verifying - Enter pass phrase for private.key: 12345
В директории выполнения команды будет создан файл с приватным ключом: private.key.

Это секретная информация. Сохраняйте конфиденциальность приватного ключа. Файл с приватным ключом зашифрован и защищен паролем.

Шаг 2. Создание CSR-запроса на сертификат
Выполните команду:
openssl req -new -key private.key -out request.csr
Введите необходимые параметры для запроса на сертификат. Используйте только латинские символы.
При создании CSR-запроса в Windows укажите в команде путь к конфигурационному файлу OpenSSL. Для этого добавьте к команде ключ -config "{path}" -out. Пример команды:
req -new -key private.key -config "C:\openssl-WIN32\openssl.cnf" -out request.csr
Пример заполнения параметров запроса на сертификат
ПараметрЗначениеПримечание
Country Name (2 letter code) [AU]:RUОбязательное
State or Province Name (full name):RussiaОбязательное
Locality Name (eg, city): []:MoscowНеобязательное
Organization Name (eg, company) [Internet Widgits Pty Ltd]:OOO PredpriyatieВведите необходимые параметры для запроса на сертификат. Используйте только латинские символы.
Organizational Unit Name (eg, section) []:
Необязательное
Common Name (eg, YOUR name) []:
/business/predpriyatie
Обязательное поле.
/business/ — обязательная часть этого параметра, ее менять не нужно. После нее могут следовать любые латинские буквы без пробелов. Например, название вашей компании латиницей.
Email Address:predpriyatie@example.comОбязательное
В директории, в которой была выполнена команда, будет создан файл request.csr.
Шаг 3. Получение электронной подписи для заявки на сертификат
Электронная подпись нужна для заполнения заявки на сертификат, она содержится в файле сертификата.
Чтобы получить электронную подпись, выполните команду:
openssl req -in request.csr -noout -text
Текстовым представлением электронной подписи является часть ответа после строки Signature Algorithm: sha1WithRSAEncryption. Например:
Signature Algorithm: sha1WithRSAEncryption
5b:67:42:8c:5a:a7:bc:bf:05:99:77:39:2e:e7:e7:5d:8e:47:
09:e9:5a:46:62:3c:b1:63:2a:de:06:26:54:a4:12:b4:17:b2:
ca:ff:f4:3f:c0:09:ee:7a:88:5b:b9:f5:04:cb:24:bd:5f:bd:
3b:f7:38:54:71:1c:fe:98:17:66:ae:72:2d:8a:31:34:94:30:
58:ad:79:60:e5:ca:24:83:8b:c7:96:11:c6:d9:c9:6e:7a:b0:
83:20:96:96:08:72:38:3e:24:dc:30:35:f7:85:f4:d3:21:62:
13:44:1f:49:2a:d3:c2:73:2d:3b:fc:07:3f:20:8e:d3:c1:c8:
4c:3b:69:a3:24:56:1e:5c:9c:2f:eb:83:97:80:8b:25:5d:6a:
63:80:59:24:c0:1a:b5:ed:9f:fa:b9:6d:38:dc:6b:ff:29:9e:
24:b7:95:07:37:a9:71:90:ad:b7:51:d6:0e:62:82:5d:39:8a:
f2:4a:06:db:5e:2c:ae:4f:c8:76:2b:ee:e9:13:04:e3:72:c8:
6b:26:61:6c:aa:07:c1:3f:3c:b0:92:b0:29:5f:74:14:7c:34:
77:c8:c6:7a:2f:33:55:c5:0f:1d:e0:b7:8a:d9:84:d7:78:fb:
59:22:e0:58:49:97:16:f2:77:58:8b:8a:af:f2:af:43:b1:fa:
27:58:e1:c2
Шаг 4. Заполнение заявки на сертификат
Скачайте заявку на сертификат, заполните и распечатайте. Подставьте подпись и печать. Отсканируйте.
ПараметрОписание
CNДолжно соответствовать значению параметра Common Name (eg, YOUR name). Например, /business/predpriyatie.
Электронная подпись запроса на сертификатТекстовое представление, полученное на предыдущем шаге.
Наименование организации латинскими буквамиДолжно соответствовать значению параметра Organization Name (eg, company) [Internet Widgits Pty Ltd].
Причина запроса
Возможные варианты:
  • первоначальный — для получения первого сертификата;
  • плановая замена — для замены сертификата, у которого закончился срок действия;
  • замена скомпрометированного — для замены ранее выпущенного сертификата при нарушении безопасности;
  • добавление сервера — для использования нового сертификата на дополнительных серверах или сервисах.
Контактное лицоКонтакты специалиста для связи при возникновении вопросов по выданному сертификату.
Адрес электронной почтыАдрес для отправки выпущенного сертификата.
Шаг 5. Отправка запроса и заявки на сертификат в ЮMoney
Отправьте файл запроса на сертификат (request.csr) и скан заявки по электронной почте своему менеджеру в ЮMoney.
Выпуск сертификата занимает не больше 2 рабочих дней.
Шаг 6. Установка сертификата
В ответ на заявку менеджер в ЮMoney пришлет файл с сертификатом. Срок действия сертификата 1 год.
Что дальше:
  1. Разместите сертификат на своем сервере.
  2. Пропишите путь к нему в настройках скриптов, которые взаимодействуют с ЮMoney.
  3. Если вы проверяете сертификат конечного сервера, загрузите цепочку сертификации (сертификаты удостоверяющего центра NBCO YooMoney) и добавьте их в списки доверенных корневых и промежуточных центров сертификации своего ПО.
При необходимости можно хранить пару «приватный ключ»—«сертификат» в едином зашифрованном файле-ключнице формата PKCS#12. Изготовить такую ключницу можно командой:
openssl pkcs12 -export -in username.crt -inkey private.key -out username.p12
За подробной информацией по установке сертификата обращайтесь к менеджеру по подключению.
Порядок работы с SSL-сертификатами
Необходимо:
  • Проверять подлинность серверов ЮMoney с помощью цепочки сертификации и не устанавливать соединение, если проверка не пройдет успешно.
  • Использовать свой приватный ключ и сертификат при установлении подключений к серверам ЮMoney.
  • Сохранять конфиденциальность приватного ключа.
  • Самостоятельно следить за сроком действия сертификата.
Рекомендуется:
  • Дополнительно рекомендуется проверять сертификаты серверов ЮMoney по списку отозванных сертификатов (Certificate Revocation List, CRL)
  • На каждый сервис, которому нужен доступ к серверам ЮMoney, рекомендуется получить свой сертификат. Но можно использовать один сертификат на все сервисы.

В случае компрометации приватного ключа обязательно сообщите менеджеру в ЮMoney.

Если срок действия сертификата закончится или он будет скомпрометирован, можно получить новый по данному регламенту.
Что почитать еще
Коды ошибок