У меня была эта проблема, и я искал всю глубину Google и все еще не мог найти ответ. После нескольких дней борьбы с ужасным качественным унаследованным кодом я нашел причину этой ошибки.
KeyStore.load(InputStream is, String pass);
этот метод принимает InputStream и, если есть какие-либо проблемы с таким InputStream, выдается это исключение, некоторые проблемы, с которыми я столкнулся:
- InputStream указывает на неправильный / пустой / только что созданный файл
- InputStream уже открыт или что-то еще удерживает ресурс
- InputStream уже использовался и читал , таким образом, позиция следующего байта InputStream - его конец
Последний был ответственным за мою проблему. Код создавал InputStream из сертификата и продолжал использовать его в двух вызовах KeyStore.load (), первый был успешным, второй всегда вызывал у меня эту ошибку.