При использовании SSL в EJB возникло исключение: хранилище ключей было изменено или пароль был неверным.

Я следовал инструкциям в учебнике Oracle, чтобы создать новый Файлы «keystore.jks» и «cacerts.jks» с новым паролем (без использования «changeit» по умолчанию). Чтобы быть более точным, я использовал следующие 3 команды для создания файлов:

1. keytool -genkey -alias s1as -keyalg RSA -keypass newpass -storepass newpass -keystore keystore.jks
2. keytool -export -alias s1as -storepass newpass -file server.cer -keystore keystore.jks
3. keytool -import -v -trustcacerts -alias s1as -file server.cer -keystore cacerts.jks -keypass newpass -storepass newpass

После того, как я скопировал новые файлы «keystore.jks» и «cacerts.jks» в папку «/domains/domain1/config» и запустил сервер приложений, я столкнулся со следующим исключением:

IllegalStateException: Keystore was tampered with, or password was incorrect

Однако я думаю, что пароль должен быть правильным, потому что, когда я настраивал GlassFish для использования новых файлов, я добавил эту строку в параметры JVM:

-Djavax.net.ssl.keyStorePassword=newpass

Я попытался сравнить старый файл «keystore.jks» с новым с помощью команды:

keytool -list -v -keystore keystore.jks

Я заметил, что в результате для старого файла, кроме информации о сертификате s1as, он также содержит следующую строку:

Extensions:
#1 ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 1B 31 49 23 1C 5B 17 1D    9F 02 86 FD F7 2B 44 F4   .1I#.[.........+D.
0010: 1B E3 7A C6
]
]

Результат для нового файла не содержит ничего похожего на приведенные выше строки. В своем приложении я намерен использовать самозаверяющий сертификат. Буду очень признателен, если кто-нибудь подскажет, как решить эту проблему.

С наилучшими пожеланиями,

Джеймс Тран


person Mr.J4mes    schedule 13.08.2011    source источник


Ответы (1)


Попробуйте добавить этот параметр -Djavax.net.ssl.trustStorePassword=newpass

person Vit Hnilica    schedule 13.08.2011