ОСМП, Empay, Pegas, Rapida, Comepay, CyberPlat используют метод аутентификации по сертификатам. Для работы необходим серверный сертификат и использование httpsHTTPS.Необходимо
1. Необходимо экспортировать серверный сертификат, чтобы удаленная сторона могла добавить его в доверенные:
Блок кода | ||||
---|---|---|---|---|
| ||||
keytool -keystore .keystore -alias bgbilling -exportcert -file bgbilling.cer |
...
Блок кода | ||||
---|---|---|---|---|
| ||||
openssl x509 -inform der -in bgbilling.cer -out bgbilling.pem |
2. Работа с клиентским сертификатом
...
платежной системы может проходить в нескольких вариантах:
2.1. Платежная система присылает сертификат, который просто нужно добавить в доверенные:
Блок кода | ||||
---|---|---|---|---|
| ||||
keytool -keystore .keystore -alias pegas -importcert -file pegas.cer |
Далее переходим к пункту 3.
2.2. Подпись запроса на сертификат или создание подписанного сертификата:
Сначала создаем главный сертификат для модуля, им будут подписаны клиентские сертификаты, а сам он будет добавлен в доверенные сертификаты в .keystore (таким образом).
Генерируем ключ, который будет зашифрован паролем:
...
Блок кода | ||||
---|---|---|---|---|
| ||||
keytool -keystore .keystore -alias mps -importcert -file mps.pem |
Далее, если нам прислали запрос на подпись сертификата (.csr) - переходим к пункту 2.2.2, иначе - к пункту 2.2.1.
2.2.1. Если нам нужно самим создать сертификат (нам не присылали запрос на подпись):
Генерируем ключ, osmp.key - в данном случае имя файла, здесь уже нужно использовать другой пароль, потому что его необходимо будет также переслать удаленной стороне:
...
Блок кода | ||||
---|---|---|---|---|
| ||||
[amir@ts01 keys]$ openssl req -new -key osmp.key -out osmp.csr Enter pass phrase for osmp.key: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [GB]:RU State or Province Name (full name) [Berkshire]:. Locality Name (eg, city) [Newbury]:. Organization Name (eg, company) [My Company Ltd]:OSMP Organizational Unit Name (eg, section) []:OSMP-BGBilling Common Name (eg, your name or your server's hostname) []:www.osmp.ru Email Address []:support@osmp.ru Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: |
Далее переходим к пункту 2.2.2.
2.2.2. Если нам прислали CSR-запрос на подпись или мы только что сами создали новый, создаем подписанный сертификат из запроса:
Блок кода | ||||
---|---|---|---|---|
| ||||
[amir@ts01 keys]$ openssl x509 -req -in osmp.csr -CA mps.pem -CAkey mps.key -out osmp.pem -days 1001 -CAcreateserial -CAserial mps.seq Signature ok subject=/C=RU/O=OSMP/OU=OSMP-BGBilling/CN=www.osmp.ru/emailAddress=support@osmp.ru Getting CA Private Key Enter pass phrase for mps.key: |
...
Сначала необходимо будет ввести пароль на закрытый ключ, который указали при генерации osmp.key, затем два раза - новый (можно тот же самый) уже для нового PKCS файла.
3. Открытый ключ добавленного в доверенные/созданного/подписанного клиентского сертификата необходимо указать в конфиге.
Для этого необходимо скопировать содержание открытого ключа одной строкой, без заголовка и окончания '-----BEGIN PUBLIC KEY-----'/'-----END PUBLIC KEY-----'
...