Проблема при извлечении ключа из сертификата - PullRequest
0 голосов
/ 04 июля 2018

Мы пытаемся установить новый сертификат, выданный правительством, который не работает.

Код работает на сервере Java EE, который читает сертификат и извлекает открытый ключ.

//ks is Keystore
ks.load(new FileInputStream("/tmp/cert.pfx"), "password".toCharArray());

Загрузка сертификата в порядке. Если мы посмотрим на ks.size(), возвращается 1.

Если мы перечислим псевдонимы, мы также увидим значение псевдонима.

Enumeration<?> en = ks.aliases();
String alias = (String)en.nextElement();

Однако, если мы извлечем сертификат, используя псевдоним, мы получим нулевое значение

X509Certificate x509cert = ((X509Certificate)ks.getCertificate(alias));

x509cert является нулевым в этой точке.

Еще несколько очков:

  • Это выданный правительством сертификат. Если мы изменим псевдоним на значение открытого текста, используя openssl, он будет работать нормально. Исходное значение - GUID.

  • Если мы проводим тестирование с использованием тестовой программы на локальном ПК с использованием Java SE, оригинал сертификат работает - мы можем извлечь открытый ключ из сертификата, используя псевдоним.

  • Прошлые сертификаты работали нормально. Мы изменили на новый сертификат только потому, что срок действия старого сертификата истек.

Новый сертификат не работает только в среде Java EE. Поэтому я рассматриваю это как комбинацию чего-то в сертификате вместе со средой, в которой он работает.

Есть идеи, что может быть не так, или способ устранить это?

...