Есть ли API Java для преобразования сертификата из формата 'DER' в формат pkcs # 12? - PullRequest
2 голосов
/ 07 декабря 2010

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

Ответы [ 4 ]

1 голос
/ 07 декабря 2010

Вы можете попробовать загрузить контейнер 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);
        // ...
    }
}
0 голосов
/ 07 декабря 2010

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

0 голосов
/ 07 декабря 2010

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

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

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

0 голосов
/ 07 декабря 2010

Это может конвертировать pkcs из PEM

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

Так что давайте сначала конвертируем ваш DER в PEM

openssl dsa -inform PEM|DER -outform DER|PEM -in pem-file|der-file -out der-file|pem-file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...