私は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を作成する方法を見つけて、署名を取得するためにサーバーに送信できるようになったら素晴らしいと思います。
ありがとう、
BouncyCastleの最近のバージョンでは、org.bouncycastle.pkcs.PKCS10CertificationRequestBuilder
クラスを使用してCSRを作成することをお勧めします。
このコード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);