Ладно. Давайте попорядку, если никто не против.
Все что я делал согласно вашего "фэн-шуя".
1) у меня биллинг работает на FreeBSD
[root@billing /usr/local/BGBillingServer]# uname -a
FreeBSD billing 7.0-RELEASE-p12 FreeBSD 7.0-RELEASE-p12 #0: Sat Jul 18 10:20:32 UTC 2009 admin@billing:/usr/src/sys/i386/compile/my_kernel_10 i386
[root@billing /usr/local/BGBillingServer]#
Информация по самому биллингу - писал выше.
2) папка где установлен биллинг вот эта
/usr/local/BGBillingServer
3) естественно поначалу у меня нет в /usr/local/BGBillingServer никакого .keystore
[root@billing /usr/local/BGBillingServer]# ls -al | grep .keystore
[root@billing /usr/local/BGBillingServer]#
3) начинаем вот отсюда
http://www.bgbilling.ru/v5.0/doc/ch01s14.html Подготавливаем хранилище для работы.
Заряжаем:
[root@billing /usr/local/BGBillingServer]# keytool -genkey -alias bgbilling -keyalg RSA -keystore .keystore
Enter keystore password:тут вбиваем пароль на хранилище (рекомендуется bgbilling, собственно я его и вбивал)
Re-enter new password:повтор пароля
What is your first and last name?
[Unknown]:
http://www.yourcompanyname.ruWhat is the name of your organizational unit?
[Unknown]: ISP
What is the name of your organization?
[Unknown]: CompanyName
What is the name of your City or Locality?
[Unknown]: Muhosransk
What is the name of your State or Province?
[Unknown]: Muhosransk Region
What is the two-letter country code for this unit?
[Unknown]: RU
Is CN=www.yourcompanyname.ru, OU=ISP, O=CompanyName, L=Muhosransk, ST=Muhosransk Region, C=RU correct?
[no]: yes
Enter key password for <bgbilling>
(RETURN if same as keystore password): еще раз вбил bgbilling
Re-enter new password:и еще раз bgbilling
[root@billing /usr/local/BGBillingServer]#
У нас появился файлик .keystore. Собственно вот:
[root@billing /usr/local/BGBillingServer]# ls | grep .keystore
.keystore
[root@billing /usr/local/BGBillingServer]#
Теперь можно даже просмотреть содержимое хранилища вот так
[root@billing /usr/local/BGBillingServer]# keytool -keystore .keystore -list
Enter keystore password:тут вколачиваем опять bgbilling
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 1 entry
bgbilling, 16.12.2009, PrivateKeyEntry,
Certificate fingerprint (MD5): 30:4C:3E:70:41:42:64:DC:32:C4:24:94:E5:96:0E:99
[root@billing /usr/local/BGBillingServer]#
4) Теперь по фэншую доков надо экспортировать серверный сертификат для того, чтобы удаленная сторона могла его добавить в доверенные. Это делаем так:
[root@billing /usr/local/BGBillingServer]# keytool -keystore .keystore -alias bgbilling -exportcert -file yourcompany.cer
Enter keystore password:тут опять вколачиваем пароль на хранилище (bgbilling)
Certificate stored in file <yourcompany.cer>
[root@billing /usr/local/BGBillingServer]#
Получили файл с экспортированным сертификатом yourcompany.cer. Который является самоподписанным(поправьте меня если не так).
5) Теперь нам нужно подписать CSR-запрос, присланный от системы платежей. Это делаем в несколько подэтапов
5.1) Генерируем ключ, который будет зашифрован паролем
[root@billing /usr/local/BGBillingServer]# 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:сюда вколачиваем секретный пароль (к примеру popa)
Verifying - Enter pass phrase for mps.key:тот же пароль еще раз (popa)
[root@billing /usr/local/BGBillingServer]#
получили ключ mps.key
5.2) Создаем на основе ключа сертификат
[root@billing /usr/local/BGBillingServer]# openssl req -new -x509 -days 1200 -key mps.key -out mps.pem
Enter pass phrase for mps.key:здесь вклачиваем popa (пароль на секретный ключ)
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) [AU]:RU
State or Province Name (full name) [Some-State]:Muhosransk Region
Locality Name (eg, city) []:Muhosransk
Organization Name (eg, company) [Internet Widgits Pty Ltd]:CompanyName Ltd.
Organizational Unit Name (eg, section) []:ISP
Common Name (eg, YOUR name) []:www.yourcompanyame.ru
Email Address []:support@yourcompanyname.ru
[root@billing /usr/local/BGBillingServer]#
получили файлик - mps.pem
5.3) Добавляем полученный сертификат в доверенные вот так
[root@billing /usr/local/BGBillingServer]# keytool -keystore .keystore -alias osmp -importcert -file mps.pem
Enter keystore password:
Owner: EMAILADDRESS=techsupport@yorcompanyname.ru, CN=www.yourcompanyname.ru, OU=ISP, O=CompanyName Ltd., L=Muhosransk, ST=Muhosransk Region, C=RU
Issuer: EMAILADDRESS=techsupport@yorcompanyname.ru, CN=www.yourcompanyname.ru, OU=ISP, O=CompanyName Ltd., L=, ST=Muhosransk Region, C=RU
Serial number: d32c95fa6f50d5c8
Valid from: Wed Dec 16 00:25:38 2009 until: Sat Mar 30 00:25:38 2013
Certificate fingerprints:
MD5: 02:94:D3:91:0A:98:39:53:AD:83:7E:F6:29:82:F2:CD
SHA1: EE:96:16:BE:99:F3:E0:2D:77:08:CF:3F:D5:D8:C0:69:0F:75:50:11
Signature algorithm name: SHA1withRSA
Version: 3
Extensions:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 03 97 C4 4E 0D 10 84 3D C2 D8 94 BE 5A 9A AB 87 ...N...=....Z...
0010: 13 CF 4C B3 ..L.
]
]
#2: ObjectId: 2.5.29.19 Criticality=false
BasicConstraints:[
CA:true
PathLen:2147483647
]
#3: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 03 97 C4 4E 0D 10 84 3D C2 D8 94 BE 5A 9A AB 87 ...N...=....Z...
0010: 13 CF 4C B3 ..L.
]
[EMAILADDRESS=techsupport@yorcompanyname.ru, CN=www.yorcompanyname.biz, OU=ISP, O=CompanyName Ltd., L=Muhosransk, ST=MuhosranskRegion, C=RU]
SerialNumber: [ d32c95fa 6f50d5c8]
]
Trust this certificate? [no]: y
Certificate was added to keystore
[root@billing /usr/local/BGBillingServer]#
Получили то, что самоподписанный сертификат находится в хранилище, просмотреть так:
[root@billing /usr/local/BGBillingServer]# keytool -keystore .keystore -list
Enter keystore password:
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 2 entries
bgbilling, 16.12.2009, PrivateKeyEntry,
Certificate fingerprint (MD5): 30:4C:3E:70:41:42:64:DC:32:C4:24:94:E5:96:0E:99
osmp, 16.12.2009, trustedCertEntry,
Certificate fingerprint (MD5): 02:94:D3:91:0A:98:39:53:AD:83:7E:F6:29:82:F2:CD[root@billing /usr/local/BGBillingServer]#
6) Теперь в моем случае надо подписать CSR-запрос, который мне прислали из ОСМП.
Делаем так:
[root@billing /usr/local/BGBillingServer]# openssl x509 -req -in yourcompanyname_cert.req -CA mps.pem -CAkey mps.key -out osmp.pem -days 1200 -CAcreateserial -CAserial mps.seq
Signature ok
subject=/C=RU/ST=Moscow/L=Moscow/O=Ciberpay/OU=IT Dept/CN=yourcompanyname Ciberpay/emailAddress=support@ciberpay.ru
Getting CA Private Key
Enter pass phrase for mps.key:тут вколачиваем пароль на ключ (в примере был popa)
[root@billing /usr/local/BGBillingServer]#
на выходе получили файл osmp.pem-подписанный сертификат из запроса от ОСМП, который по фэншую доков надо отправить в ciberpay (читал вот тут
http://www.bgbilling.ru/v4.6/doc/ch17s03.html)
На этом действия по работе с сертификатами в моем случае закончились.
И теперь, глубокоуважаемые разработчики, подскажите - что мне прописать в нофиге модуля, чтобы у меня заработали платежи на основе всего вышесозданного. В голове уже каша, надеюсь на понимание и помощь. Хоть мануал толковый на живом примере получится. Заранее спасибо.