Package ru.bitel.bgbilling.server.util
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 booleancheckTrustStoreNotEmpty(java.lang.String password)Проверка, что в .keystore есть TrustedCertificateEntry.static javax.net.ssl.SSLContextcreateSSLContext(java.io.File privateKey, java.lang.String privateKeyPassword, java.security.cert.X509Certificate[] chain, java.io.File... hostCrts)Создаёт SSLContext с keystore и truststore, общий код используется в модулях для ssl к банкам итд.static java.io.FilegetKeyStoreFile()File на keystore-файл биллинга, поддерживается и новый и старый файлstatic java.security.PrivateKeygetPrivateKey(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
Получение приватного ключа из файла .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
-