Есть ли какие-нибудь Java API для преобразования сертификата из формата «Дер» в формат PKCS # 12

StackOverflow https://stackoverflow.com/questions/4373561

Вопрос

Мне нужно преобразовать сертификат из формата DER в формат PKCS # 12. Я знаю, что могу сделать это, используя команду openssl. Я ищу Java API / класс, который может сделать эту работу. Любая помощь будет оценена.

Это было полезно?

Решение

Вы можете попробовать загрузить контейнер PKCS # 12 в качестве ключевого магазина:

java.security.KeyStore ks = java.security.KeyStore.getInstance("PKCS12");
ks.load(new java.io.FileInputStream("yourStore.p12"), "yourPassword".toCharArray());

После загрузки вы можете перечислить элементы внутри контейнера:

for(Enumeration enum = ks.aliases(); enum.hasMoreElements(); ) {
    String alias = (String) enum.nextElement();
    System.out.println("@:" + alias);
    if (ks.isKeyEntry(alias)) {
        System.out.println("return PrivateKey");
        PrivateKey pk = (PrivateKey) ks.getKey(alias, password);
        // ...
    }
}

Другие советы

Это может преобразовать PKCS из PEM

openssl pkcs12 -export -in pem-certificate-and-key-file -out pkcs-12-certificate and-key-file

Итак, давайте сначала преобразом свой PEM в PEM

openssl dsa -inform PEM|DER -outform DER|PEM -in pem-file|der-file -out der-file|pem-file

Насколько я понимаю, PEM - это просто в кодированной строке BASE64 из содержимого DER с соответствующим линиям заголовка и нижнего колонтитула. Для преобразования в Base64 вы можете использовать javax.mail.internet.MimeUtility Например.

Я получил много пробега из Портека.

Если вы должны сделать это программно, большая часть того, что вам нужно, находится в классе ключевого магазина в Java. Что касается удобства пользователя, ну, это довольно селективно о своих друзьях. Откройте магазин, добавь к нему, сохраните его. Если вам нужны сертифицированные цепи, это будет немного сложнее.

Что касается извлечения сертификата от кодирования DER, см. X509Certificate Javadoc. Особенно ссылки на сертификат капитала.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top