forum.bitel.ru http://forum.bitel.ru/ |
|
сертификаты - по документации не получается http://forum.bitel.ru/viewtopic.php?f=18&t=6511 |
Страница 1 из 1 |
Автор: | nikav80 [ 01 мар 2012, 18:04 ] |
Заголовок сообщения: | сертификаты - по документации не получается |
сделал все согласно документации по 5.1 Работа сертификатов основывается на паре асинхронных ключей. Необходимо создать их, для этого воспользуемся утилитой keytool, которая идет вместе с JRE/JDK: keytool -keystore .keystore -alias bgbilling -genkey -keyalg RSA -dname "cn=bill.provider.ru, email=email@provider.ru,ou=Provider Billing, o=Provider, c=RU" -validity 1001 Параметр -validity указывает сколько дней будет действителен сертификат. Утилита попросит ввести пароль для хранилища и пароль для закрытого ключа (private key). Оба пароля должны совпадать и быть прописаны в конфиге сервера (по умолчанию биллинг пытается использовать значение 'bgbilling'): keystore.password=bgbilling cn - common name - имя сервера. Пользователь заходит на https://bill.provider.ru/, сервер возращает сертификат, браузер проверяет имя на совпадение - если не совпадает, то выводится предупреждение. ou - organization unit, o - organization, c - country После выполнения утилиты появится файл .keystore, в нем в алиасе bgbilling - закрытый ключ и сертификат. Закрытый ключ нельзя передавать никому. Необходимо экспортировать серверный сертификат, чтобы удаленная сторона могла добавить его в доверенные: keytool -keystore .keystore -alias bgbilling -exportcert -file bgbilling.cer Сконвертировать сертификат в x509 base64 можно командой: openssl x509 -inform der -in bgbilling.cer -out bgbilling.pem Сначала создаем главный сертификат для модуля, им будут подписаны клиентские сертификаты, а сам он будет добавлен в доверенные сертификаты в .keystore. Генерируем ключ, который будет зашифрован паролем: [amir@ts01 keys]$ openssl genrsa -des3 -out mps.key 1024 Generating RSA private key, 1024 bit long modulus e is 65537 (0x10001) Enter pass phrase for mps.key: Verifying - Enter pass phrase for mps.key: Создаем на основе ключа сертификат, здесь понадобится ввести описание сертификата, точка - '.' -означает пустое поле: [amir@ts01 keys]$ openssl req -new -x509 -days 1001 -key mps.key -out mps.pem Enter pass phrase for mps.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]:Provider Organizational Unit Name (eg, section) []:Provider BGBilling MPS Common Name (eg, your name or your server's hostname) []:Provider BGBilling MPS Email Address []:support@provider.ru Добавляем сертификат в доверенные: keytool -keystore .keystore -alias mps -importcert -file mps.pem Если нам прислали 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/ ... rt@osmp.ru Getting CA Private Key Enter pass phrase for mps.key: Если к нам приходил только CSR запрос - то нужно послать только osmp.pem. Открытый ключ добавленного в доверенные/созданного/подписанного клиентского сертификата необходимо указать в конфиге. Для этого необходимо скопировать содержание открытого ключа одной строкой, без заголовка и окончания '-----BEGIN PUBLIC KEY-----'/'-----END PUBLIC KEY-----' Например: mps.1.cert.pem=MIGfMA0GCSqGSIb3DQE.....EmO5Phqo2FG52KwIDAQAB Извлечь открытый ключ из сертификата можно так: [amir@ts01 keys]$ openssl x509 -inform der -in osmp.cer -pubkey #или [amir@ts01 keys]$ openssl x509 -inform pem -in osmp.pem -pubkey в server.log ошибка 03-01/14:42:18 WARN ["http-bio-/xxx.xxx.xxx.xxx-8443"-exec-1] MPSExecuter - MPSExecuter. Authentication error of payment system [remoteAddr=xxx.xxx.xxx.xxx, authType=null]. Для авторизации необходим клиентский сертификат конфигурация модуля mps.1.mode=1 mps.1.title=Comepay mps.1.protocol=comepay mps.1.login=x mps.1.passw=x mps.1.pid=1 mps.1.comment=$contract_title ($contract_comment) mps.1.cert=1 mps.1.cert.pem= помогите!!! что не так! |
Автор: | skyb [ 01 мар 2012, 18:39 ] |
Заголовок сообщения: | Re: сертификаты - по документации не получается |
nikav80 писал(а): mps.1.cert.pem= помогите!!! что не так! может тут согласно доке угазать сертификат? |
Автор: | nikav80 [ 01 мар 2012, 19:13 ] |
Заголовок сообщения: | Re: сертификаты - по документации не получается |
естесно добавил! |
Автор: | snark [ 01 мар 2012, 20:50 ] |
Заголовок сообщения: | Re: сертификаты - по документации не получается |
nikav80 писал(а): в server.log ошибка 03-01/14:42:18 WARN ["http-bio-/xxx.xxx.xxx.xxx-8443"-exec-1] MPSExecuter - MPSExecuter. Authentication error of payment system [remoteAddr=xxx.xxx.xxx.xxx, authType=null]. Для авторизации необходим клиентский сертификат Дайте угадаю - Вы браузером захотели проверить что Вам выдает? На всякий случай: Я ключи для кампея генерилил так: Код: openssl genrsa -des3 -out comepay.key 1024 openssl rsa -in comepay.key -out comepay_no_pass.key mv comepay_no_pass.key comepay.key openssl req -new -key comepay.key -out comepay.csr openssl x509 -req -in comepay.csr -CA mps.pem -CAkey mps.key -out comepay.pem -days 3650 -CAcreateserial -CAserial mps.seq openssl pkcs12 -export -in comepay.pem -inkey comepay.key -out comepay.p12 Добавляем наш ключ в кейсторе: Код: keytool -keystore .keystore -storepass bgbilling -alias comepay -importcert -file comepay.pem Смотрим ключ: Код: openssl x509 -inform pem -pubkey -in comepay.pem получаем: Код: -----BEGIN PUBLIC KEY----- Весь этот текст между этими 2-мя строчками добавляем в конфиг, в mps.<x>.cert.pem -----END PUBLIC KEY----- Доп. инфа тут, тут и тут P.S. На будущее - цитируйте ВСЮ документацию, а не только ее куски. |
Автор: | nikav80 [ 02 мар 2012, 17:07 ] |
Заголовок сообщения: | Re: сертификаты - по документации не получается |
Вы сами генерировали ключ для comepay? Они Вам не присылали запрос на подпись? |
Автор: | snark [ 02 мар 2012, 19:25 ] |
Заголовок сообщения: | Re: сертификаты - по документации не получается |
Да, сам. |
Автор: | nikav80 [ 02 мар 2012, 21:07 ] |
Заголовок сообщения: | Re: сертификаты - по документации не получается |
Спасибо за помощь! Все получилось! ![]() |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |