Class KeyStoreUtils

java.lang.Object
ru.bitel.bgbilling.server.util.KeyStoreUtils

public class KeyStoreUtils
extends java.lang.Object
Всё про реализацию и работу с KeyStore в биллинге Перенесено в 8.2201 вручную, используется ограниченно в новых черипиках возможно, испаравлен метод getKeyStoreFile.
  • Constructor Summary

    Constructors
    Constructor Description
    KeyStoreUtils()  
  • Method Summary

    Modifier and Type Method Description
    static boolean checkTrustStoreNotEmpty​(java.lang.String password)
    Проверка, что в .keystore есть TrustedCertificateEntry.
    static javax.net.ssl.SSLContext createSSLContext​(java.io.File privateKey, java.lang.String privateKeyPassword, java.security.cert.X509Certificate[] chain, java.io.File... hostCrts)
    Создаёт SSLContext с keystore и truststore, общий код используется в модулях для ssl к банкам итд.
    static java.io.File getKeyStoreFile()
    File на keystore-файл биллинга, поддерживается и новый и старый файл
    static java.security.PrivateKey getPrivateKey​(Setup setup, java.lang.String alias)
    Получение приватного ключа из файла .keystore по алиасу.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • KeyStoreUtils

      public KeyStoreUtils()
  • Method Details

    • getKeyStoreFile

      public static java.io.File getKeyStoreFile()
      File на keystore-файл биллинга, поддерживается и новый и старый файл
    • checkTrustStoreNotEmpty

      public static boolean checkTrustStoreNotEmpty​(java.lang.String password)
      Проверка, что в .keystore есть TrustedCertificateEntry.
      Parameters:
      password -
      Returns:
    • getPrivateKey

      public static java.security.PrivateKey getPrivateKey​(Setup setup, java.lang.String alias)
      Получение приватного ключа из файла .keystore по алиасу. Используется параметр keystore.password из сетапа и как пароль кейстора и как пароль приватного ключа При неудаче пытается взять по пустому паролю ещё (частый кейс: приватные без ключа либо унлоченные).
      Parameters:
      setup - серверный сетап
      alias - алиас, если null - первый попавшийся (из тех у кого первым и пароль подойдёт) PrivateKey в кейсторе
      Returns:
      PrivateKey, если такого алиаса нет - то null (так делает сразу штатный store.getKey), если пароль неверный то тоже null в нашей реализации + ругнётся в логи.
    • createSSLContext

      public static javax.net.ssl.SSLContext createSSLContext​(java.io.File privateKey, java.lang.String privateKeyPassword, java.security.cert.X509Certificate[] chain, java.io.File... hostCrts) throws java.lang.Exception
      Создаёт SSLContext с keystore и truststore, общий код используется в модулях для ssl к банкам итд.
      Parameters:
      privateKey - [keystore] файл приват.ключа (например, key.pem)
      privateKeyPassword - [keystore] пароль от приват.ключа
      chain - [keystore] чейн сертификатов для соответствующего приватному открытого ключа (состоящий например из cert.pem, или cert.pem+ca.pem)
      hostCrts - [truststore] файл(ы) сертификата (например host.pem или ca.crt, или host.pem+ca.pem)
      Returns:
      новый объект SSLContext
      Throws:
      java.lang.Exception