Hope this helps:
import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.NoSuchAlgorithmException; import java.security.PrivateKey; import java.security.PublicKey; import java.security.SecureRandom; import java.security.Signature; import javax.security.auth.x500.X500Principal; import sun.security.pkcs10.*; import sun.security.x509.*; public class GenerateCSR { private static PublicKey publicKey = null; private static PrivateKey privateKey = null; private static KeyPairGenerator keyGen = null; private static GenerateCSR gcsr = null; private GenerateCSR() { try { keyGen = KeyPairGenerator.getInstance("RSA"); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } keyGen.initialize(2048, new SecureRandom()); KeyPair keypair = keyGen.generateKeyPair(); publicKey = keypair.getPublic(); privateKey = keypair.getPrivate(); } public static GenerateCSR getInstance() { if (gcsr == null) gcsr = new GenerateCSR(); return gcsr; } public String getCSR(String cn) throws Exception { byte[] csr = generatePKCS10(cn, "Java", "JournalDev", "Cupertino", "California", "USA"); return new String(csr); } private static byte[] generatePKCS10(String CN, String OU, String O, String L, String S, String C) throws Exception {
source share