На сервере 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|...|#]
И отсюда сервис перестает работать. Согласно журналу, незадолго до возникновения исключения сертификат опрашивается, а сервер по умолчанию отвечает «нет», и я подозреваю, что именно это и вызывает ошибку.
Но что заставляет сервер внезапно ставить под сомнение сертификат? Сертификат уже импортирован и помечен как надежный в хранилище ключей. Все даты в порядке. Я что-то пропустил?