Миграция с JKS на PKCS12: методы и шаги

“Хранилище ключей JKS использует собственный формат. Рекомендуется переход на PKCS12.”

Методы перехода от формата JKS (хранилище ключей Java) к формату PKCS12 (стандарты криптографии с открытым ключом № 12):

  1. Использование Keytool: Утилита Java Keytool предоставляет команды для управления хранилищами ключей. Вы можете использовать следующую команду для преобразования хранилища ключей JKS в формат PKCS12:

    keytool -importkeystore -srckeystore <input.jks> -destkeystore <output.p12> -srcstoretype JKS -deststoretype PKCS12
  2. Использование OpenSSL: OpenSSL — это универсальный инструмент с открытым исходным кодом для SSL/TLS и криптографических операций. Вы можете преобразовать хранилище ключей JKS в PKCS12 с помощью следующей команды:

    openssl pkcs12 -export -in <input.jks> -out <output.p12> -name <alias>
  3. Использование кода Java. Вы можете написать простую программу Java для программного переноса ключей. Вот пример использования классов KeyStore и Certificate:

    KeyStore jksStore = KeyStore.getInstance("JKS");
    jksStore.load(new FileInputStream("input.jks"), "password".toCharArray());
    KeyStore pkcs12Store = KeyStore.getInstance("PKCS12");
    pkcs12Store.load(null, null);
    Enumeration<String> aliases = jksStore.aliases();
    while (aliases.hasMoreElements()) {
       String alias = aliases.nextElement();
       Key key = jksStore.getKey(alias, "password".toCharArray());
       Certificate[] chain = jksStore.getCertificateChain(alias);
       pkcs12Store.setKeyEntry(alias, key, "password".toCharArray(), chain);
    }
    pkcs12Store.store(new FileOutputStream("output.p12"), "password".toCharArray());