2010-06-18 2 views
3

На сервере Sun Glassfish я развернул приложение, которое взаимодействует с внешним веб-сервисом через SSL.Доверенные сертификаты становятся недействительными

У меня есть вручную импортированные сертификаты в cacerts.jks с java keytool cli (keytool -import -trustcacerts -keystore cacerts.jks -alias somealias -file somecert.cer).

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

[#|2010-06-18T09:13:23.930+0200|WARNING|sun-appserver9.1|...|_ThreadID=850;_ThreadName=p: thread-pool-1; w: 901;javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: The certificate chain from the server is not trusted|...|#]

И отсюда сервис перестает работать. Согласно журналу, незадолго до возникновения исключения, сертификат ставится под сомнение, а сервер по умолчанию не отвечает, и я подозреваю, что это то, что порождает ошибку.

Но что заставило сервер неожиданно опросить сертификат? Сертификат уже импортирован и помечен как доверенный в хранилище ключей. Все даты в порядке. Я что-то пропустил?

ответ

1

Возможно, есть другое приложение, которое меняет свойство System (javax.net.ssl.trustStore). javax.net.ssl.trustStore - это то, что указывает на надежное хранилище ключей. Попробуйте распечатать это свойство System, чтобы узнать, не изменилось ли оно. Другим вариантом является запуск JVM со следующей опцией -Djavax.net.debug=SSL,handshake,data,trustmanager Это должно дать вам несколько подробных результатов в вашем файле журнала stdout.

Смежные вопросы