Создание CSR с использованием API BouncyCastle
Я новичок в области безопасности Java и наткнулся на эту библиотеку под названием bouncycastle. Но примеры, которые они предоставляют, и те, что в Интернете, просят использовать -
return new PKCS10CertificationRequest("SHA256withRSA", new X500Principal(
"CN=Requested Test Certificate"), pair.getPublic(), null, pair.getPrivate()
Но когда я использую PKCS10CertificationRequest, похоже, что он устарел. Поэтому я начал изучать другой метод, в котором я использую класс CertificationRequest. Но я действительно смущен, конструктор не принимает одинаковые параметры, вместо этого требуется класс CertificationRequestInfo, который я не уверен, как заполнить.
CertificationRequest request = new CertificationRequest(...);
Было бы здорово, если бы кто-то помог мне разобраться, как сделать CSR, чтобы я мог отправить его на сервер для его подписания.
Спасибо,
Ответы
Ответ 1
В последних версиях BouncyCastle рекомендуется создать CSR с помощью класса org.bouncycastle.pkcs.PKCS10CertificationRequestBuilder
.
Вы можете использовать этот код snipppet:
KeyPair pair = generateKeyPair();
PKCS10CertificationRequestBuilder p10Builder = new JcaPKCS10CertificationRequestBuilder(
new X500Principal("CN=Requested Test Certificate"), pair.getPublic());
JcaContentSignerBuilder csBuilder = new JcaContentSignerBuilder("SHA256withRSA");
ContentSigner signer = csBuilder.build(pair.getPrivate());
PKCS10CertificationRequest csr = p10Builder.build(signer);