2013-12-12 4 views
12

Ich bin neu auf der Sicherheitsseite von Java und stolperte über diese Bibliothek namens Bouncycastle. Aber die Beispiele, die sie bieten, und diejenigen aus im Internet stellen zu verwenden -Generieren der CSR mit BouncyCastle API

 return new PKCS10CertificationRequest("SHA256withRSA", new X500Principal(
    "CN=Requested Test Certificate"), pair.getPublic(), null, pair.getPrivate() 

Aber wenn ich PKCS10CertificationRequest verwenden, sieht es aus wie es ist veraltet. Also habe ich mir eine andere Methode angeschaut, in der ich die CertificationRequest-Klasse verwende. Aber ich bin wirklich verwirrt, der Konstruktor nimmt nicht die gleichen Parameter statt es nimmt CertificationRequestInfo Klasse, die ich nicht sicher bin, wie man füllt.

CertificationRequest request = new CertificationRequest(...); 

Es wäre fantastisch, wenn jemand mir helfen herauszufinden, könnte wie eine CSR zu machen, so dass ich es an den Server senden kann für das Erhalten es unterzeichnet.

Danke,

Antwort

18

Mit den aktuellen Versionen von BouncyCastle wird empfohlen, die CSR mit der org.bouncycastle.pkcs.PKCS10CertificationRequestBuilder Klasse zu erstellen.

können Sie diesen Code verwenden 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); 
+0

Dank .. Wie drucke ich das CSR? – Fox

+1

Ich habe es .. hat es mit Hilfe von PEMWriter Klasse gemacht .. Danke für die Hilfe. – Fox

+2

Für neuen Code würde ich vorschlagen, JcaPEMWriter anstelle von PEMWriter zu verwenden. Die gleiche Schnittstelle, aber PEMWriter ist jetzt veraltet. –

Verwandte Themen