Class KeyStoreUtils

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

public class KeyStoreUtils extends Object
Всё про реализацию и работу с KeyStore в биллинге
  • Constructor Details

    • KeyStoreUtils

      public KeyStoreUtils()
  • Method Details

    • getKeyStoreFile

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

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

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

      public static SSLContext createSSLContext(File privateKey, String privateKeyPassword, X509Certificate[] chain, File... hostCrts) throws 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:
      Exception