How to create a X509 certificate using Java?

前端 未结 2 728
广开言路
广开言路 2020-12-09 17:50

I want to create a X509 certificate using Java language and then extract public key from it.

I have searched the internet and found many code examples, but all of th

相关标签:
2条回答
  • 2020-12-09 18:34

    You can also generate a certificate using only JDK classes. The disadvantage is that you have to use two classes from the sun.security.x509 package. The code would be:

    KeyStore keyStore = ... // your keystore
    
    // generate the certificate
    // first parameter  = Algorithm
    // second parameter = signrature algorithm
    // third parameter  = the provider to use to generate the keys (may be null or
    //                    use the constructor without provider)
    CertAndKeyGen certGen = new CertAndKeyGen("RSA", "SHA256WithRSA", null);
    // generate it with 2048 bits
    certGen.generate(2048);
    
    // prepare the validity of the certificate
    long validSecs = (long) 365 * 24 * 60 * 60; // valid for one year
    // add the certificate information, currently only valid for one year.
    X509Certificate cert = certGen.getSelfCertificate(
       // enter your details according to your application
       new X500Name("CN=My Application,O=My Organisation,L=My City,C=DE"), validSecs);
    
    // set the certificate and the key in the keystore
    keyStore.setKeyEntry(certAlias, certGen.getPrivateKey(), null, 
                            new X509Certificate[] { cert });
    

    Retrieve the private key from the key store to encrypt or decrypt data. Based on the code is from http://www.pixelstech.net/article/1408524957-Generate-cetrificate-in-Java----3

    0 讨论(0)
  • 2020-12-09 18:35

    Yes, with BouncyCastle, creating an X509 cert from 2 public keys (the key for the cert and the one for the CA) is done here.

    I turn the resulting certificate into PEM here.

    0 讨论(0)
提交回复
热议问题