web-dev-qa-db-ja.com

BouncyCastleAPIを使用したCSRの生成

私は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を作成する方法を見つけて、署名を取得するためにサーバーに送信できるようになったら素晴らしいと思います。

ありがとう、

16
Fox

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);
28
Jcs