X509CertificateBuilder certificateBuilder = new X509CertificateBuilder(); certificateBuilder.setIssuerDn(dn); certificateBuilder.setSubjectDn(dn); certificateBuilder.setPublicKey(keyPair.getPublic()); certificateBuilder.setSigningKey(signingKey); certificateBuilder.setSignatureAlgorithmName(signatureAlgorithmName); certificateBuilder.setVersion(VERSION); BigInteger serialNumber = new BigInteger(64, new SecureRandom()); certificateBuilder.setSerialNumber(serialNumber); for (X509CertificateExtension extension : extensionsByOid.values()) { certificateBuilder.addExtension(extension); certificateBuilder.setNotValidBefore(notValidBefore); certificateBuilder.setNotValidAfter(notValidAfter); selfSignedCertificate = certificateBuilder.build(); return new SelfSignedX509CertificateAndSigningKey(this); } catch (Exception e) {
/** * Generates self-signed certificate for provided key-pair with given validity time and signature algorithm. * * @param name common name for the certificate * @param keyPair public and private keys * @param certValidity how long the certificate should be valid to the future (number of seconds) * @param signatureAlgorithm signature algorithm * @return generated certificate * @throws CertificateException */ public static X509Certificate generateX509Certificate(String name, KeyPair keyPair, long certValidity, String signatureAlgorithm) throws CertificateException { ZonedDateTime from = ZonedDateTime.now(); ZonedDateTime to = ZonedDateTime.now().plusSeconds(certValidity); BigInteger serialNumber = new BigInteger(64, new SecureRandom()); X500Principal owner = new X500Principal("CN=" + name); X509CertificateBuilder certificateBuilder = new X509CertificateBuilder(); return certificateBuilder.setIssuerDn(owner).setSubjectDn(owner).setNotValidBefore(from).setNotValidAfter(to) .setSerialNumber(serialNumber).setPublicKey(keyPair.getPublic()).setSignatureAlgorithmName (signatureAlgorithm).setSigningKey(keyPair.getPrivate()).build(); } }
X509Certificate generateCertificate(KeyPair pair) throws Exception { PrivateKey privkey = pair.getPrivate(); X509CertificateBuilder builder = new X509CertificateBuilder(); Date from = new Date(); Date to = new Date(from.getTime() + (1000L * 60L * 60L * 24L * 365L * 10L)); BigInteger sn = new BigInteger(64, new SecureRandom()); builder.setNotValidAfter(ZonedDateTime.ofInstant(Instant.ofEpochMilli(to.getTime()), TimeZone.getDefault().toZoneId())); builder.setNotValidBefore(ZonedDateTime.ofInstant(Instant.ofEpochMilli(from.getTime()), TimeZone.getDefault().toZoneId())); builder.setSerialNumber(sn); X500Principal owner = new X500Principal("CN=" + autoGenerateCertHostName); builder.setSubjectDn(owner); builder.setIssuerDn(owner); builder.setPublicKey(pair.getPublic()); builder.setVersion(3); builder.setSignatureAlgorithmName(SHA_256_WITH_RSA); builder.setSigningKey(privkey); return builder.build(); }
X509Certificate generateCertificate(KeyPair pair) throws Exception { PrivateKey privkey = pair.getPrivate(); X509CertificateBuilder builder = new X509CertificateBuilder(); Date from = new Date(); Date to = new Date(from.getTime() + (1000L * 60L * 60L * 24L * 365L * 10L)); BigInteger sn = new BigInteger(64, new SecureRandom()); builder.setNotValidAfter(ZonedDateTime.ofInstant(Instant.ofEpochMilli(to.getTime()), TimeZone.getDefault().toZoneId())); builder.setNotValidBefore(ZonedDateTime.ofInstant(Instant.ofEpochMilli(from.getTime()), TimeZone.getDefault().toZoneId())); builder.setSerialNumber(sn); X500Principal owner = new X500Principal("CN=" + autoGenerateCertHostName); builder.setSubjectDn(owner); builder.setIssuerDn(owner); builder.setPublicKey(pair.getPublic()); builder.setVersion(3); builder.setSignatureAlgorithmName(SHA_256_WITH_RSA); builder.setSigningKey(privkey); return builder.build(); }
X509CertificateBuilder certificateBuilder = new X509CertificateBuilder(); certificateBuilder.setIssuerDn(dn); certificateBuilder.setSubjectDn(dn); certificateBuilder.setPublicKey(keyPair.getPublic()); certificateBuilder.setSigningKey(signingKey); certificateBuilder.setSignatureAlgorithmName(signatureAlgorithmName); certificateBuilder.setVersion(VERSION); BigInteger serialNumber = new BigInteger(64, new SecureRandom()); certificateBuilder.setSerialNumber(serialNumber); for (X509CertificateExtension extension : extensionsByOid.values()) { certificateBuilder.addExtension(extension); certificateBuilder.setNotValidBefore(notValidBefore); certificateBuilder.setNotValidAfter(notValidAfter); selfSignedCertificate = certificateBuilder.build(); return new SelfSignedX509CertificateAndSigningKey(this); } catch (Exception e) {
X509CertificateBuilder certificateBuilder = new X509CertificateBuilder(); certificateBuilder.setIssuerDn(dn); certificateBuilder.setSubjectDn(dn); certificateBuilder.setPublicKey(keyPair.getPublic()); certificateBuilder.setSigningKey(signingKey); certificateBuilder.setSignatureAlgorithmName(signatureAlgorithmName); certificateBuilder.setVersion(VERSION); BigInteger serialNumber = new BigInteger(64, new SecureRandom()); certificateBuilder.setSerialNumber(serialNumber); for (X509CertificateExtension extension : extensionsByOid.values()) { certificateBuilder.addExtension(extension); certificateBuilder.setNotValidBefore(notValidBefore); certificateBuilder.setNotValidAfter(notValidAfter); selfSignedCertificate = certificateBuilder.build(); return new SelfSignedX509CertificateAndSigningKey(this); } catch (Exception e) {
X509CertificateBuilder certificateBuilder = new X509CertificateBuilder(); certificateBuilder.setIssuerDn(dn); certificateBuilder.setSubjectDn(dn); certificateBuilder.setPublicKey(keyPair.getPublic()); certificateBuilder.setSigningKey(signingKey); certificateBuilder.setSignatureAlgorithmName(signatureAlgorithmName); certificateBuilder.setVersion(VERSION); BigInteger serialNumber = new BigInteger(64, new SecureRandom()); certificateBuilder.setSerialNumber(serialNumber); for (X509CertificateExtension extension : extensionsByOid.values()) { certificateBuilder.addExtension(extension); certificateBuilder.setNotValidBefore(notValidBefore); certificateBuilder.setNotValidAfter(notValidAfter); selfSignedCertificate = certificateBuilder.build(); return new SelfSignedX509CertificateAndSigningKey(this); } catch (Exception e) {