Websphere keyset не получает последний ключ

У меня проблема с набором ключей Websphere. Я создаю хранилище ключей, используя открытый ключ, который был создан на другом компьютере с помощью keytool, с помощью этой команды:

keytool -import -noprompt -alias eeccstore -keystore eeccstore.jks -file D:\Keys\eecc_public.key -storepass password

После этого в Websphere Server я создаю хранилище ключей следующим образом:

Использование хранилища ключей: хранилище ключей набора ключей

Создать хранилище ключей в Websphere Server

Я использую тот же пароль, который я использую для создания KeyStore с Keytool.

Затем я создаю набор ключей в WebSphere Server следующим образом:

Создать набор ключей в Websphere Server

В своем коде Java я использую набор ключей следующим образом:

KeySetHelper ksh = KeySetHelper.getInstance();
KeyPair key = (KeyPair)ksh.getLatestKeyForKeySet("eeccKeySet");

И консоль показывает мне это:

java.lang.NullPointerException
com.ibm.ws.crypto.config.WSKeySet.getLatestKey(WSKeySet.java:257)
com.ibm.websphere.crypto.KeySetHelper.getLatestKeyForKeySet

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

Спасибо заранее за вашу поддержку.

Reggard!

0 ответов

После нескольких дней поиска я нашел решение. Вместо того, чтобы получить доступ к KeySet, я получаю доступ к KeyStore напрямую и получаю не ключ, а сертификат X509, который может создать открытый ключ и использовать его для шифрования любого текста.

    char [] passch = password.toCharArray();

    com.ibm.crypto.provider.JavaKeyStore keystore = new JavaKeyStore();

    keystore.engineLoad(new FileInputStream(new File(pathKeyFileJKS)), null);
    KeyStore.TrustedCertificateEntry privKeyEntry =  (TrustedCertificateEntry) 
    keystore.engineGetEntry("eecc-KeyStore", new KeyStore.PasswordProtection(passch)); 

    X509CertImpl cert = (X509CertImpl) privKeyEntry.getTrustedCertificate();

    cert.checkValidity();

    PublicKey publicKey  = cert.getPublicKey();

Если переменная пароля содержит пароль, который я использую для создания файла eecc_public.key, pathKeyFileJKS содержит путь, по которому создается файл jks, а "eecc-KeyStore" - это имя, которое я использую для создания моего хранилища ключей в WebSphere Server.

Другие вопросы по тегам