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 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
Получение приватного ключа из файла .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
-