forum.bitel.ru http://forum.bitel.ru/ |
|
Подписанные сертификаты SSL, как прикрутить к BG http://forum.bitel.ru/viewtopic.php?f=22&t=1848 |
Страница 1 из 1 |
Автор: | jack7 [ 26 янв 2009, 17:24 ] |
Заголовок сообщения: | Подписанные сертификаты SSL, как прикрутить к BG |
Есть оплаченные официальные SSL сертификат и приватный ключ, как их прикрутить к биллингу? (keytool или еще как) |
Автор: | jack7 [ 27 янв 2009, 17:22 ] |
Заголовок сообщения: | |
добавление сертификата протекает вот так Код: bill BGBillingServer # keytool -import -alias bgbilling -file certificate_xxx.ru_91.crt
Enter keystore password: Re-enter new password: Owner: CN=xxx.ru, OU=Domain Control Validated - QuickSSL Premium(R), OU=See www.geotrust.com/resources/cps (c)09, OU=GT49952852, O=xxx.ru, C=RU Issuer: OU=Equifax Secure Certificate Authority, O=Equifax, C=US Serial number: a881d Valid from: Mon Jan 26 16:05:33 YEKT 2009 until: Wed Jan 27 16:05:33 YEKT 2010 Certificate fingerprints: MD5: 08:E0:E4:94:12:E1:F9:D0:CA:51:F7:6D:7F:D7:F6:C9 SHA1: 95:E1:67:81:0C:A5:F5:0C:7C:81:3B:BA:3D:21:E2:E6:1B:38:B4:D4 Signature algorithm name: SHA1withRSA Version: 3 Extensions: #1: ObjectId: 2.5.29.15 Criticality=true KeyUsage [ DigitalSignature Non_repudiation Key_Encipherment Data_Encipherment ] #2: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 23 82 23 A1 28 22 41 CD 57 DC '...(aA.W...(.Y. 0010: 55 F2 67 1C ..g. ] ] #3: ObjectId: 2.5.29.31 Criticality=false CRLDistributionPoints [ [DistributionPoint: [URIName: http://crl.geotrust.com/crls/secureca.crl] ]] #4: ObjectId: 2.5.29.37 Criticality=false ExtendedKeyUsages [ serverAuth clientAuth ] #5: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ KeyIdentifier [ 0000: 23 82 23 A1 28 22 41 CD 57 DC '...(aA.W...(.Y. 0010: 55 F2 67 1C ..g. ] ] Trust this certificate? [no]: yes Certificate was added to keystore bill BGBillingServer # cp -f /root/.keystore /usr/local/BGBillingServer/ bill BGBillingServer # keytool -list -file /usr/local/BGBillingServer/.keystore Enter keystore password: Keystore type: JKS Keystore provider: SUN Your keystore contains 1 entry bgbilling, Jan 27, 2009, trustedCertEntry, Certificate fingerprint (MD5): 08:E0:E4:94:12:E1:F9:D0:CA:51:F7:6D:7F:D7:F6:C9 bill BGBillingServer # после перезапуска BG, порт 8443 слушается, но админка не коннектится и в логах такие записи server.out писал(а): Jan 27, 2009 4:19:20 PM org.apache.tomcat.util.net.JIoEndpoint$Acceptor run
SEVERE: Socket accept failed java.net.SocketException: SSL handshake errorjavax.net.ssl.SSLException: No available certificate or key corresponds to the SSL cipher suites which are enabled. at org.apache.tomcat.util.net.jsse.JSSESocketFactory.acceptSocket(JSSESocketFactory.java:150) at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:310) at java.lang.Thread.run(Thread.java:619 |
Автор: | Администратор [ 13 фев 2009, 17:20 ] |
Заголовок сообщения: | |
Попробуйте поискать что-то вроде "trusted ssl certificate to tomcat" Вот нашлось, например: http://helpdesk.computerlabsolutions.co ... ticleid=28 http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html Tomcat - потому что он также использует стандартные java хранилища сертификатов, в то же время это распространненый сервер приложений и задача должна встречаться довольно часто. Еще как крайний обходной вариант - подсунуть ваш сертификат nginx, проксировать а после него гнать во внутренней сети HTTP. |
Автор: | jack7 [ 13 фев 2009, 17:21 ] |
Заголовок сообщения: | |
ок, спасибо - попробуем |
Автор: | jack7 [ 16 фев 2009, 13:01 ] |
Заголовок сообщения: | |
по докам для tomcat - установка аналогична той же что и я делал ранее Цитата: Importing the Certificate Now that you have your Certificate you can import it into you local keystore. First of all you have to import a so called Chain Certificate or Root Certificate into your keystore. After that you can procede with importing your Certificate. * Download a Chain Certificate from the Certificate Authority you obtained the Certificate from. For Verisign.com commercial certificates go to: http://www.verisign.com/support/install ... diate.html For Verisign.com trial certificates go to: http://www.verisign.com/support/verisig ... index.html For Trustcenter.de go to: http://www.trustcenter.de/certservices/ ... htm#server For Thawte.com go to: http://www.thawte.com/certs/trustmap.html * Import the Chain Certificate into you keystore keytool -import -alias root -keystore <your_keystore_filename> -trustcacerts -file <filename_of_the_chain_certificate> * And finally import your new Certificate keytool -import -alias tomcat -keystore <your_keystore_filename> -trustcacerts -file <your_certificate_filename> Код: # keytool -import -alias bgbilling -trustcacerts -file certificate_xxx.ru_91.crt затем просмотр того, что лежит в хранилище Код: # keytool -list -file .keystore Enter keystore password: Keystore type: JKS Keystore provider: SUN Your keystore contains 1 entry bgbilling, Feb 16, 2009, trustedCertEntry, Certificate fingerprint (MD5): 08:E0:E4:94:12:E1:F9:D0:CA:51:F7:6D:7F:D7:F6:C9 в server.out ошибки, после перезапуска биллинга Цитата: java.net.SocketException: SSL handshake errorjavax.net.ssl.SSLException: No available certificate or key corresponds to the SSL cipher suites which are enabled.
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.acceptSocket(JSSESocketFactory.java:150) at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:310) at java.lang.Thread.run(Thread.java:619) Feb 16, 2009 11:50:54 AM org.apache.tomcat.util.net.JIoEndpoint$Acceptor run SEVERE: Socket accept failed java.net.SocketException: SSL handshake errorjavax.net.ssl.SSLException: No available certificate or key corresponds to the SSL cipher suites which are enabled. at org.apache.tomcat.util.net.jsse.JSSESocketFactory.acceptSocket(JSSESocketFactory.java:150) at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:310) at java.lang.Thread.run(Thread.java:619) Feb 16, 2009 11:50:54 AM org.apache.tomcat.util.net.JIoEndpoint$Acceptor run SEVERE: Socket accept failed java.net.SocketException: SSL handshake errorjavax.net.ssl.SSLException: No available certificate or key corresponds to the SSL cipher suites which are enabled. at org.apache.tomcat.util.net.jsse.JSSESocketFactory.acceptSocket(JSSESocketFactory.java:150) at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:310) at java.lang.Thread.run(Thread.java:619) Feb 16, 2009 11:50:54 AM org.apache.tomcat.util.net.JIoEndpoint$Acceptor run SEVERE: Socket accept failed |
Автор: | Amir [ 16 фев 2009, 18:09 ] |
Заголовок сообщения: | |
Проблема в том что keytool не импортирует private key. В нем можно сгенерировать ключи, создать на основе них c certificate request и импортировать ответ к ключам. Для импорта private key поищите http://www.google.com/search?q=import%20private%20key%20to%20keystore |
Автор: | jack7 [ 19 фев 2009, 12:36 ] |
Заголовок сообщения: | |
готовое решение нашел здесь http://www.comu.de/docs/tomcat_ssl.htm всем спасибо за помощь! |
Автор: | Администратор [ 20 фев 2009, 13:52 ] |
Заголовок сообщения: | |
А там вроде 2 метода описано. Вы какой использовали? Можно кратко, как победили? Хочу описать в WiKi, т.к. проблема еще будет всплывать на мой взгляд.. http://wiki.bgbilling.ru/index.php/%D0% ... 1%82%D0%B0 |
Автор: | jack7 [ 20 фев 2009, 15:20 ] |
Заголовок сообщения: | |
Решение для Linux 1) Необходимо скачать ImportKey.java Код: package comu; import java.security.*; import java.io.IOException; import java.io.InputStream; import java.io.FileInputStream; import java.io.DataInputStream; import java.io.ByteArrayInputStream; import java.io.FileOutputStream; import java.security.spec.*; import java.security.cert.Certificate; import java.security.cert.CertificateFactory; import java.util.Collection; import java.util.Iterator; /** * ImportKey.java * * <p>This class imports a key and a certificate into a keystore * (<code>$home/keystore.ImportKey</code>). If the keystore is * already present, it is simply deleted. Both the key and the * certificate file must be in <code>DER</code>-format. The key must be * encoded with <code>PKCS#8</code>-format. The certificate must be * encoded in <code>X.509</code>-format.</p> * * <p>Key format:</p> * <p><code>openssl pkcs8 -topk8 -nocrypt -in YOUR.KEY -out YOUR.KEY.der * -outform der</code></p> * <p>Format of the certificate:</p> * <p><code>openssl x509 -in YOUR.CERT -out YOUR.CERT.der -outform * der</code></p> * <p>Import key and certificate:</p> * <p><code>java comu.ImportKey YOUR.KEY.der YOUR.CERT.der</code></p><br /> * * <p><em>Caution:</em> the old <code>keystore.ImportKey</code>-file is * deleted and replaced with a keystore only containing <code>YOUR.KEY</code> * and <code>YOUR.CERT</code>. The keystore and the key has no password; * they can be set by the <code>keytool -keypasswd</code>-command for setting * the key password, and the <code>keytool -storepasswd</code>-command to set * the keystore password. * <p>The key and the certificate is stored under the alias * <code>importkey</code>; to change this, use <code>keytool -keyclone</code>. * * Created: Fri Apr 13 18:15:07 2001 * Updated: Fri Apr 19 11:03:00 2002 * * @author Joachim Karrer, Jens Carlberg * @version 1.1 **/ public class ImportKey { /** * <p>Creates an InputStream from a file, and fills it with the complete * file. Thus, available() on the returned InputStream will return the * full number of bytes the file contains</p> * @param fname The filename * @return The filled InputStream * @exception IOException, if the Streams couldn't be created. **/ private static InputStream fullStream ( String fname ) throws IOException { FileInputStream fis = new FileInputStream(fname); DataInputStream dis = new DataInputStream(fis); byte[] bytes = new byte[dis.available()]; dis.readFully(bytes); ByteArrayInputStream bais = new ByteArrayInputStream(bytes); return bais; } /** * <p>Takes two file names for a key and the certificate for the key, * and imports those into a keystore. Optionally it takes an alias * for the key. * <p>The first argument is the filename for the key. The key should be * in PKCS8-format. * <p>The second argument is the filename for the certificate for the key. * <p>If a third argument is given it is used as the alias. If missing, * the key is imported with the alias importkey * <p>The name of the keystore file can be controlled by setting * the keystore property (java -Dkeystore=mykeystore). If no name * is given, the file is named <code>keystore.ImportKey</code> * and placed in your home directory. * @param args [0] Name of the key file, [1] Name of the certificate file * [2] Alias for the key. **/ public static void main ( String args[]) { // change this if you want another password by default String keypass = "bgbilling"; // change this if you want another alias by default String defaultalias = "bgbilling"; // change this if you want another keystorefile by default String keystorename = System.getProperty("keystore"); if (keystorename == null) keystorename = System.getProperty("user.home")+ System.getProperty("file.separator")+ "keystore.ImportKey"; // especially this ;-) // parsing command line input String keyfile = ""; String certfile = ""; if (args.length < 2 || args.length>3) { System.out.println("Usage: java comu.ImportKey keyfile certfile [alias]"); System.exit(0); } else { keyfile = args[0]; certfile = args[1]; if (args.length>2) defaultalias = args[2]; } try { // initializing and clearing keystore KeyStore ks = KeyStore.getInstance("JKS", "SUN"); ks.load( null , keypass.toCharArray()); System.out.println("Using keystore-file : "+keystorename); ks.store(new FileOutputStream ( keystorename ), keypass.toCharArray()); ks.load(new FileInputStream ( keystorename ), keypass.toCharArray()); // loading Key InputStream fl = fullStream (keyfile); byte[] key = new byte[fl.available()]; KeyFactory kf = KeyFactory.getInstance("RSA"); fl.read ( key, 0, fl.available() ); fl.close(); PKCS8EncodedKeySpec keysp = new PKCS8EncodedKeySpec ( key ); PrivateKey ff = kf.generatePrivate (keysp); // loading CertificateChain CertificateFactory cf = CertificateFactory.getInstance("X.509"); InputStream certstream = fullStream (certfile); Collection c = cf.generateCertificates(certstream) ; Certificate[] certs = new Certificate[c.toArray().length]; if (c.size() == 1) { certstream = fullStream (certfile); System.out.println("One certificate, no chain."); Certificate cert = cf.generateCertificate(certstream) ; certs[0] = cert; } else { System.out.println("Certificate chain length: "+c.size()); certs = (Certificate[])c.toArray(); } // storing keystore ks.setKeyEntry(defaultalias, ff, keypass.toCharArray(), certs ); System.out.println ("Key and certificate stored."); System.out.println ("Alias:"+defaultalias+" Password:"+keypass); FileOutputStream fos = new FileOutputStream( keystorename ); ks.store( fos , keypass.toCharArray()); fos.close(); } catch (Exception ex) { ex.printStackTrace(); } } }// KeyStore Изменить переменные в коде на нужные Код: // change this if you want another password by default String keypass = "bgbilling"; // change this if you want another alias by default String defaultalias = "bgbilling"; 2) откомпилировать ImportKey.java Код: $ javac ImportKey.java в результате создается класс ImportKey.class 3) В текущей директории создается директория comu (туда скопировать файл ImportKey.class) 4) Конвертировать ключ и сертификат в формат DER-format (в текущей директории должны быть готовые ключ и сертификат) Код: $ openssl pkcs8 -topk8 -nocrypt -in private_key_xxx.ru_91.pem -out private_key_xxx.ru_91.pem.der -outform der $ openssl x509 -in certificate_xxx.ru_91.crt -out certificate_xxx.ru_91.crt.der -outform der 5) Помещаеются ключ и сертификат в хранилище javastore Код: $ java comu.ImportKey private_key_xxx.ru_91.pem.der certificate_xxx.ru_91.crt.der
В результате хранилище находится в файле $home/keystore.ImportKey 6) Создается копия файла .keystore, который находится в директории биллинга (на всякий случай) 7) Останавливается bgbilling, файл .keystore в корне биллинга замещается файлом с полученными сертификатами и ключем (с переименованием в .keystore) |
Автор: | cvb [ 03 июл 2011, 16:27 ] |
Заголовок сообщения: | Re: Подписанные сертификаты SSL, как прикрутить к BG |
Для любителей GUI думаю будет бесценна утилита Portecle. |
Автор: | Goblinoid [ 16 окт 2011, 14:47 ] |
Заголовок сообщения: | Re: Подписанные сертификаты SSL, как прикрутить к BG |
Всех приветствую. Новичок в биллинге. Поэтому вопрос - а как импортировать сертификат - в биллинг который на винде! Пакеты собирать не могу, платформу поменять могу. Еще раз повторюсь- как сделать тоже самое на винде 2003???? Спасибо заранее! |
Автор: | snark [ 16 окт 2011, 16:13 ] |
Заголовок сообщения: | Re: Подписанные сертификаты SSL, как прикрутить к BG |
Искать OpenSSL под венду? |
Автор: | Goblinoid [ 18 окт 2011, 15:58 ] |
Заголовок сообщения: | Re: Подписанные сертификаты SSL, как прикрутить к BG |
Гм. Я правильно понимаю что openssl может стоять и на другом серваке - главное сделать ключ в der формате??? |
Автор: | snark [ 18 окт 2011, 16:04 ] |
Заголовок сообщения: | Re: Подписанные сертификаты SSL, как прикрутить к BG |
Угу. |
Автор: | Goblinoid [ 14 ноя 2011, 16:09 ] |
Заголовок сообщения: | Re: Подписанные сертификаты SSL, как прикрутить к BG |
народ - ну выручайте...через пять дней сертификат закончится. %( есть открытый ключ отправленый в центр сертификации есть закрытый ключ и пароль от него есть сертификат присланный из центра сертификации. вроде все хорошо. но как все это прикрутить в биллинг - сообразить не могу. openssl поставил. вроде нужные пары генерятся. но утилиту imporkey.java - скомпилить на винде не могу - выдает ошибку Код: class ImportKey is public, should be declared in a fil e named ImportKey.java public class ImportKey { ^ 1 error что еще можно сделать? может есть виндовсгую утилиты - которыми можно воспользваться? очень расчитываю на ответ! |
Автор: | Goblinoid [ 14 ноя 2011, 18:38 ] |
Заголовок сообщения: | Re: Подписанные сертификаты SSL, как прикрутить к BG |
ага.. походу нашел все таки связочку.. итак - нас спасает гугление - openssl for windows и второе - keystore explorer 4.0.1 эта связка позволяет создать нужный .keystore с нужными обертками... комунить надо подробностей? тогда напишу чуть подробней! %) |
Автор: | lacost [ 26 мар 2013, 18:37 ] |
Заголовок сообщения: | Re: Подписанные сертификаты SSL, как прикрутить к BG |
Решил "узаконить" SSL дабы не выскакивали всякие недружественные пользователю надписи при входе в личный кабинет. Через OpenSSL сгенерировал ключ и запрос. Через посредников заказал подпись в Comodo После недельных проверок - получил подписанный сертификат. Как импортировать новый сертификат: 1. Скачал KeyStore Explorer. 2. Слил с сервера .keystore 3. Открыл .keystore в KeyStore Explorer 4. Import Trusted Certificate -> Root certificate 5. Import Trusted Certificate -> Comodo certificate 6. Import KeyPair -> OpenSSL -> password, my_key, my_cert -> В алиас прописывам bgbilling -> новый пароль "bgbilling" 7. Сохраняем .keystore 8. Заливаем .keystore на сервер и кладем в папку $BGBILLING_HOME 9. Перезапускаем bgbilling Все. |
Автор: | skn [ 26 мар 2013, 19:54 ] |
Заголовок сообщения: | Re: Подписанные сертификаты SSL, как прикрутить к BG |
лучше использовать в связке с биллингом frondend сервер nginx и сертификаты прикрутить к нему. |
Автор: | lacost [ 27 мар 2013, 11:41 ] |
Заголовок сообщения: | Re: Подписанные сертификаты SSL, как прикрутить к BG |
Не спорю. Поделитесь конфигом nginx для такой связки (nginx + BGB). Можно в ПМ если это тайна. Поизучаю. |
Автор: | skn [ 27 мар 2013, 11:56 ] |
Заголовок сообщения: | Re: Подписанные сертификаты SSL, как прикрутить к BG |
http://www.ashep.org/2011/nginx-statich ... rver-s-ssl |
Автор: | SeGa [ 27 мар 2013, 11:56 ] |
Заголовок сообщения: | Re: Подписанные сертификаты SSL, как прикрутить к BG |
http://wiki.bgbilling.ru/index.php/%D0% ... 0%BC_nginx |
Автор: | Cromeshnic [ 11 июл 2013, 12:07 ] |
Заголовок сообщения: | Re: Подписанные сертификаты SSL, как прикрутить к BG |
Воспользовался Portecle - можно легко импортировать key pair entry в пару кликов Только нужно сначала собрать .p12 - файлик из приватного ключа и сертификата: Код: openssl pkcs12 -export -in cert.pem -inkey prkey.pem -name "My Certificate" -out cert.p12 Ещё не проверял новый .keystore, впрочем. |
Автор: | Cromeshnic [ 11 июл 2013, 15:26 ] |
Заголовок сообщения: | Re: Подписанные сертификаты SSL, как прикрутить к BG |
работает |
Автор: | Cromeshnic [ 10 июн 2015, 16:32 ] |
Заголовок сообщения: | Re: Подписанные сертификаты SSL, как прикрутить к BG |
Заново разбирался с этой темой. Итого: Дано: 4 файла: companyname.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt и private.key Берём .keystore, открываем его в KeyStore Explorer. Tools -> Import Key Pair -> OpenSSL - выбираем private.key и companyname.crt Название записи пишем какое угодно, например companyname Сертификат загружен, но нужно нарастить цепочку. Тыркаем правой клавишей на вновь созданную entry "companyname" -> Edit Certificate Chain -> Add Certificate таким способом по порядку добавляем: COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt готово сохраняем .keystore подменяем его в /usr/local/BGBillingServer (забэкапив предыдущий) Прописываем в /usr/local/BGBillingServer/data/data.properties keystore.alias=companyname рестартуем BGBillingServer, проверяем |
Автор: | skn [ 10 июн 2015, 16:37 ] |
Заголовок сообщения: | Re: Подписанные сертификаты SSL, как прикрутить к BG |
выставлять биллинг наружу не комильфо.... |
Автор: | Cromeshnic [ 10 июн 2015, 16:40 ] |
Заголовок сообщения: | Re: Подписанные сертификаты SSL, как прикрутить к BG |
ага, у нас nginx наружу, там отдельно прикручивается. Но на биллинг я на всякий тоже прикрутил |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |