Package ru.bitel.bgbilling.server.util
Class KeyStoreUtils
java.lang.Object
ru.bitel.bgbilling.server.util.KeyStoreUtils
Всё про реализацию и работу с KeyStore в биллинге
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
checkTrustStoreNotEmpty
(String password) Проверка, что в .keystore есть TrustedCertificateEntry.static SSLContext
createSSLContext
(File privateKey, String privateKeyPassword, X509Certificate[] chain, File... hostCrts) Создаёт SSLContext с keystore и truststore, общий код используется в модулях для ssl к банкам итд.static File
File на keystore-файл биллинга, поддерживается и новый и старый файлstatic PrivateKey
getPrivateKey
(Setup setup, String alias) Получение приватного ключа из файла .keystore по алиасу.
-
Constructor Details
-
KeyStoreUtils
public KeyStoreUtils()
-
-
Method Details
-
getKeyStoreFile
File на keystore-файл биллинга, поддерживается и новый и старый файл -
checkTrustStoreNotEmpty
Проверка, что в .keystore есть TrustedCertificateEntry.- Parameters:
password
-- Returns:
-
getPrivateKey
Получение приватного ключа из файла .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
-