2013-12-12 17 views
12

Tôi mới đến bên bảo mật của Java và tình cờ gặp phải thư viện này có tên bouncycastle. Nhưng các ví dụ mà họ cung cấp và những ví dụ trên internet yêu cầu sử dụng -Tạo CSR bằng BouncyCastle API

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

Nhưng khi tôi sử dụng PKCS10CertificationRequest, có vẻ như nó không còn được dùng nữa. Vì vậy, tôi bắt đầu xem xét một phương pháp khác mà tôi sử dụng lớp CertificationRequest. Nhưng tôi thực sự bối rối, các nhà xây dựng không có các thông số tương tự thay vì phải mất CertificationRequestInfo lớp mà tôi không chắc chắn làm thế nào để điền vào.

CertificationRequest request = new CertificationRequest(...); 

Sẽ thật tuyệt vời nếu ai đó có thể giúp tôi tìm ra cách tạo CSR để tôi có thể gửi cho máy chủ để ký nó.

Cảm ơn,

Trả lời

18

Với các phiên bản gần đây của BouncyCastle nó được khuyến khích để tạo ra CSR bằng cách sử dụng lớp org.bouncycastle.pkcs.PKCS10CertificationRequestBuilder.

Bạn có thể sử dụng mã snipppet này:

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

Cảm ơn .. Làm thế nào để in các CSR? – Fox

+1

Tôi đã nhận nó .. đã làm nó với sự giúp đỡ của lớp PEMWriter .. Cảm ơn sự giúp đỡ. – Fox

+2

Đối với mã mới tôi muốn đề nghị sử dụng JcaPEMWriter thay vì PEMWriter. Cùng một giao diện nhưng PEMWriter hiện không được chấp nhận. –

Các vấn đề liên quan