3 березня 2015 р.

Оновлення ключів SSL KeyStore (JAVA)

Для керування шифрованого з'єднання в програмі OpenMeeting використовується інструмент keytool.

Створення приватного ключа  запиту для сервера сертифікації та встановлення описано у попередній публікації
Пройшов час, рік,  потрібно встановити оновленні сертифікати.
Перегляд усіх сертифікатів сховища з файлу /usr/lib/red5/conf/keystore.
keytool -list -keystore  /usr/lib/red5/conf/keystore
Якщо використати існуючий приватний ключ, то просто генеруємо запит.
keytool -certreq -keyalg RSA -alias red5 -file red5.csr \
  -keystore red5/conf/keystore
Відсилаємо запит до сервера сертифікації отримаємо відповідь у вигляді сертифікату lexxai.pp.ua.ca.crt для нашого ключа, та послідовність довірених ключів lexxai.pp.ua.ca-bundle у одному файлі.
Я розбив lexxai.pp.ua.ca-bundle на два сертифікати, один для root інший для intermed.
для оновлення я видалив попередні сертифікати
keytool -alias root  -keystore /usr/lib/red5/conf/keystore -delete
keytool -alias intermed  -keystore /usr/lib/red5/conf/keystore -delete
Та імпортував нові
keytool -import -alias root  -keystore /usr/lib/red5/conf/keystore \
  -trustcacerts -file ~/certificate/2015-2016/lexxai.pp.ua.ca-bundle.01
keytool -import -alias intermed  -keystore /usr/lib/red5/conf/keystore \
  -trustcacerts -file ~/certificate/2015-2016/lexxai.pp.ua.ca-bundle.02
А ось для пари приватний ключ-сертифікат у мене виникли проблеми, так як видалив alias red5 я видалю приватний ключ теж.
А імпортування, не вийде так як такий аліас уже існує.
/keytool -import -alias red5 -keystore /usr/lib/red5/conf/keystore -trustcacerts \
   -file ~/certificate/2015-2016/lexxai.pp.ua.ca.crt
Тому я експортую приватний ключ до зовнішнього файлу.
Є варіанти з експорту приватного ключа до формату PKCS12 з яким можна працювати за допомогою OpenSSL:
keytool -importkeystore -srckeystore /usr/lib/red5/conf/keystore -destkeystore \
  ~/certificate/2015-2016/exportkeystore.p12  -deststoretype PKCS12

Для імпорту назад:
keytool -importkeystore -deststorepass ChangePassword -destkeypass ChangePassword \
  -destkeystore /usr/lib/red5/conf/keystore -srckeystore \
  ~/certificate/2015-2016/exportkeystore.p12 -srcstoretype PKCS12 \
  -srcstorepass ChangePassword -alias red5
Але я скористався іншим інструментом KeyStore Explorer котрий може працювати безпосередньо з keystore.
Експортував приватний ключ до файлу red5.pkcs8, видалив аліас 'red5'.
А потім імпортував пару ключ плюс сертифікат як аліас 'red5'.
І таким чином в отримав новий keystore.

P.S. Щоб не робити усього цього треба генерувати новий приватний ключ перед кожним продовженням.

Немає коментарів:


Коли забув ти рідну мову, біднієш духом ти щодня...
When you forgot your native language you would become a poor at spirit every day ...

Д.Білоус / D.Bilous
Рабів до раю не пускають. Будь вільним!

ipv6 ready