Java, экспорт ключа publi c (X.509, Base64 .cer) из сертификата - PullRequest
0 голосов
/ 12 марта 2020

Я работаю над проектом, который собирает данные с какого-то правительственного портала.

Чтобы получить действительные данные, мне нужно было сделать запрос, содержащий точные данные xml. Данные xml также должны были содержать ключ publi c моего сертификата. Затем портал шифрует
возвращенные данные. Имея закрытый ключ сертификата, я могу расшифровать возвращенные данные. Пока все хорошо, это работает. Но как я могу получить ключ c моего сертификата для xml? Пока что вручную. Я нашел сертификат среди других в браузере Chrome. Экспортировал его в файл, без закрытого ключа, X.509, кодировка Base-64 (CER). Затем открыл экспортированный файл в текстовом редакторе, удалил «----- BEGIN CERTIFICATE -----» и «---- END CERTIFICATE -----», а остальные поместили в XML

Это все, что мне нужно повторить с помощью кода java (библиотека BouncyCastle?). Я думаю, что это будет легко, но примеров мало.

Спасибо.

1 Ответ

0 голосов
/ 13 марта 2020

Я, наконец, нашел решение, класс JcaPEMWriter (библиотека BouncyCastle) добился цели. Теперь результат такой же, как экспортированный вручную.

public static String convertCertificateToPEM(X509Certificate signedCertificate) throws IOException {
    StringWriter signedCertificatePEMDataStringWriter = new StringWriter();
    JcaPEMWriter pemWriter                            = new JcaPEMWriter(signedCertificatePEMDataStringWriter);
    pemWriter.writeObject(signedCertificate);
    pemWriter.close();
    return signedCertificatePEMDataStringWriter.toString();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...