Ошибка безопасности Java при запуске Glassfish 5.1 asadmin, но сертификат действителен - PullRequest
4 голосов
/ 11 мая 2019

Я пытаюсь развернуть военный файл Oracle ORDS 19.1 в Glassfish 5.1.0.

Я получил ошибку развертывания и думаю, что нашел решение.

Но, когда я пытаюсь запустить исправление, я получаю еще одну ошибку, которая не имеет никакого смысла для меня.Под Glassfish 5.1.0:

[oracle@secure-web-server-dvl glassfish]$ bin/asadmin set configs.config.server-config.cdi-service.enable-implicit-cdi=false
NCLS-ADMIN-00010
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateExpiredException: NotAfter: Tue Apr 03 18:09:20 EDT 2018
Command set failed.

Это ошибка истек срок действия сертификата SSL.Но мои сертификаты не просрочены.

Я использовал keytool для проверки действительности всех сертификатов в cacerts.jks и keystore.jks.

Все действительно.Может кто-нибудь объяснить настоящую проблему здесь?

Помогите!

1 Ответ

0 голосов
/ 18 мая 2019
  • Обновление:

Как вы запустили keytool? Список по умолчанию (без -v для подробного) дает вам дату, с которой сертификат действителен, но не до!), Попробуйте добавить -v или использовать альтернативный инструмент, например: https://keystore -explorer.org /

  • Оригинальный пост:

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

Поиск этой конкретной даты истечения срока действия сертификата показывает только тот же вопрос в другом месте (перекрестные публикации):

Поэтому я ожидаю, что ваша проблема будет специфичной для вашей локальной среды, например:

  • (прозрачный прокси-сервер / loadbalancer / frontend webserver) с истекшим сертификатом или перенаправлением запроса на другой IP-адрес, чем ожидалось
  • аутентификация обрабатывается сервером ldap через ssl / tls с просроченным сертификатом
  • пользовательская конфигурация хранилища ключей, указывающая на файл хранилища ключей, отличный от ожидаемого (скорее всего, с расширением: jks, pkcs12 / p12 / pfx, cer или в зависимости от вашего провайдера безопасности Java и связанной конфигурации (для Oracle Java это может быть даже в хранилище ключей Windows и т. д. см .: https://docs.oracle.com/en/java/javase/11/security/oracle-providers.html)

Может быть полезно попробовать:

  • Запустите соответствующие Java (клиентские) приложения с системным свойством: javax.net.debug = all, например, использование java -Djavax.net.debug = all ... some.jar / someclass
  • Если вы хотите проверить другим инструментом, попробуйте использовать:
    • openssl s_client -connect host: port -servername host -showcerts
    • сохраните все сертификаты, которые вы видите в выводе выше, в файл, подобный cert.txt, и проверьте их, используя:
    • openssl x509 -in cert.txt -noout -text
  • если вы в отчаянии, на свой страх и риск, временно измените системную дату / время до даты / времени истечения срока действия, сначала сделайте снимок системы / резервную копию - на всякий случай: -)

если ничего не помогает:

  • перехватывать системные вызовы, связанные с сетью (например, с помощью strace в Unix или procmon в Windows)
  • перехватывает трафик (например, с помощью tcpdump, wireshark и т. Д.) И анализирует его с помощью wireshark
  • подключите отладчик Java и установите точку останова на этом java.security.cert.CertificateExpiredException

Удачи!

...