KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Hy Guys! I'm trying to create x.509 certificate using bouncycastle, which should be signed by another certificate and store it PEM base 64 format. I've already have self-signed certificate (public and private key). Now I want to create new one and sign it with existing self-signed certificate. KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA", "BC"); keyPairGenerator.initialize(1024, new SecureRandom()); KeyPair keyPair = keyPairGenerator.generateKeyPair(); X509V3CertificateGenerator certGen = new X509V3CertificateGenerator(); X500Principal dnName = new X500Principal("CN=Sergey"); certGen.setSerialNumber(BigInteger.valueOf(System.currentTimeMillis())); certGen.setSubjectDN(dnName); certGen.setIssuerDN(caCert.getSubjectX500Principal()); certGen.setNotBefore(validityBeginDate); certGen.setNotAfter(validityEndDate); certGen.setPublicKey(keyPair.getPublic()); certGen.setSignatureAlgorithm("SHA256WithRSAEncryption"); certGen.addExtension(X509Extensions.AuthorityKeyIdentifier, false, new AuthorityKeyIdentifierStructure(caCert)); certGen.addExtension(X509Extensions.SubjectKeyIdentifier, false, new SubjectKeyIdentifierStructure(keyPair.getPublic())); X509Certificate cert = certGen.generate(caCertPrivateKey, "BC"); Verification passed without exceptions, which means from my point of view that it was successfully signed by caCert: cert.verify(caCert.getPublicKey()); Then I decode it to the PEM base 64: PEMWriter pemWriter = new PEMWriter(new PrintWriter(System.out)); pemWriter.writeObject(cert); pemWriter.flush(); I get something like this in the output: -----BEGIN CERTIFICATE----- MIIDDjCCAnegAwIBAgIBFDAN........ -----END CERTIFICATE----- When I open it, I see the next: Why the
Tags (comma-separated)
Save Edits
Cancel