Class SelfSignedCertificate

java.lang.Object
io.netty.handler.ssl.util.SelfSignedCertificate

@Deprecated public final class SelfSignedCertificate extends java.lang.Object
Deprecated.
Use the CertificateBuilder from netty-pkitesting instead.
Generates a temporary self-signed certificate for testing purposes.

NOTE: Never use the certificate and private key generated by this class in production. It is purely for testing purposes, and thus it is very insecure. It even uses an insecure pseudo-random generator for faster generation internally.

An X.509 certificate file and a EC/RSA private key file are generated in a system's temporary directory using File.createTempFile(String, String), and they are deleted when the JVM exits using File.deleteOnExit().

At first, this method tries to use OpenJDK's X.509 implementation (the sun.security.x509 package). If it fails, it tries to use Bouncy Castle as a fallback.

  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static final class 
    Deprecated.
     
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final java.security.cert.X509Certificate
    Deprecated.
     
    private final java.io.File
    Deprecated.
     
    private static final int
    Deprecated.
    FIPS 140-2 encryption requires the RSA key length to be 2048 bits or greater.
    private static final java.util.Date
    Deprecated.
    The maximum possible value in X.509 specification: 9999-12-31 23:59:59
    private static final java.util.Date
    Deprecated.
    Current time minus 1 year, just in case software clock goes back due to time synchronization
    private final java.security.PrivateKey
    Deprecated.
     
    private static final InternalLogger
    Deprecated.
     
    private final java.io.File
    Deprecated.
     
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
     
    Deprecated.
    Creates a new instance.
    private
    Deprecated.
     
     
    SelfSignedCertificate(java.lang.String fqdn)
    Deprecated.
    Creates a new instance.
     
    SelfSignedCertificate(java.lang.String fqdn, java.lang.String algorithm, int bits)
    Deprecated.
    Creates a new instance.
     
    SelfSignedCertificate(java.lang.String fqdn, java.security.SecureRandom random, int bits)
    Deprecated.
    Creates a new instance.
     
    SelfSignedCertificate(java.lang.String fqdn, java.security.SecureRandom random, int bits, java.util.Date notBefore, java.util.Date notAfter)
    Deprecated.
    Creates a new instance.
     
    SelfSignedCertificate(java.lang.String fqdn, java.security.SecureRandom random, int bits, java.util.Date notBefore, java.util.Date notAfter, java.lang.String algorithm)
    Deprecated.
    Creates a new instance.
     
    SelfSignedCertificate(java.lang.String fqdn, java.security.SecureRandom random, java.lang.String algorithm, int bits)
    Deprecated.
    Creates a new instance.
     
    SelfSignedCertificate(java.lang.String fqdn, java.util.Date notBefore, java.util.Date notAfter)
    Deprecated.
    Creates a new instance.
     
    SelfSignedCertificate(java.lang.String fqdn, java.util.Date notBefore, java.util.Date notAfter, java.lang.String algorithm, int bits)
    Deprecated.
    Creates a new instance.
     
    SelfSignedCertificate(java.util.Date notBefore, java.util.Date notAfter)
    Deprecated.
    Creates a new instance.
     
    SelfSignedCertificate(java.util.Date notBefore, java.util.Date notAfter, java.lang.String algorithm, int bits)
    Deprecated.
    Creates a new instance.
  • Method Summary

    Modifier and Type
    Method
    Description
    Deprecated.
     
    java.security.cert.X509Certificate
    Deprecated.
    Returns the generated X.509 certificate.
    java.io.File
    Deprecated.
    Returns the generated X.509 certificate file in PEM format.
    void
    Deprecated.
    Deletes the generated X.509 certificate file and EC/RSA private key file.
    private static boolean
    Deprecated.
     
    java.security.PrivateKey
    key()
    Deprecated.
    Returns the generated EC/RSA private key.
    (package private) static java.lang.String[]
    newSelfSignedCertificate(java.lang.String fqdn, java.security.PrivateKey key, java.security.cert.X509Certificate cert)
    Deprecated.
     
    java.io.File
    Deprecated.
    Returns the generated EC/RSA private key file in PEM format.
    private static void
    safeClose(java.io.File keyFile, java.io.OutputStream keyOut)
    Deprecated.
     
    private static void
    safeDelete(java.io.File certFile)
    Deprecated.
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • logger

      private static final InternalLogger logger
      Deprecated.
    • DEFAULT_NOT_BEFORE

      private static final java.util.Date DEFAULT_NOT_BEFORE
      Deprecated.
      Current time minus 1 year, just in case software clock goes back due to time synchronization
    • DEFAULT_NOT_AFTER

      private static final java.util.Date DEFAULT_NOT_AFTER
      Deprecated.
      The maximum possible value in X.509 specification: 9999-12-31 23:59:59
    • DEFAULT_KEY_LENGTH_BITS

      private static final int DEFAULT_KEY_LENGTH_BITS
      Deprecated.
      FIPS 140-2 encryption requires the RSA key length to be 2048 bits or greater. Let's use that as a sane default but allow the default to be set dynamically for those that need more stringent security requirements.
    • certificate

      private final java.io.File certificate
      Deprecated.
    • privateKey

      private final java.io.File privateKey
      Deprecated.
    • cert

      private final java.security.cert.X509Certificate cert
      Deprecated.
    • key

      private final java.security.PrivateKey key
      Deprecated.
  • Constructor Details

    • SelfSignedCertificate

      public SelfSignedCertificate() throws java.security.cert.CertificateException
      Deprecated.
      Creates a new instance.

      Algorithm: RSA

      Throws:
      java.security.cert.CertificateException
    • SelfSignedCertificate

      public SelfSignedCertificate(java.util.Date notBefore, java.util.Date notAfter) throws java.security.cert.CertificateException
      Deprecated.
      Creates a new instance.

      Algorithm: RSA

      Parameters:
      notBefore - Certificate is not valid before this time
      notAfter - Certificate is not valid after this time
      Throws:
      java.security.cert.CertificateException
    • SelfSignedCertificate

      public SelfSignedCertificate(java.util.Date notBefore, java.util.Date notAfter, java.lang.String algorithm, int bits) throws java.security.cert.CertificateException
      Deprecated.
      Creates a new instance.
      Parameters:
      notBefore - Certificate is not valid before this time
      notAfter - Certificate is not valid after this time
      algorithm - Key pair algorithm
      bits - the number of bits of the generated private key
      Throws:
      java.security.cert.CertificateException
    • SelfSignedCertificate

      public SelfSignedCertificate(java.lang.String fqdn) throws java.security.cert.CertificateException
      Deprecated.
      Creates a new instance.

      Algorithm: RSA

      Parameters:
      fqdn - a fully qualified domain name
      Throws:
      java.security.cert.CertificateException
    • SelfSignedCertificate

      public SelfSignedCertificate(java.lang.String fqdn, java.lang.String algorithm, int bits) throws java.security.cert.CertificateException
      Deprecated.
      Creates a new instance.
      Parameters:
      fqdn - a fully qualified domain name
      algorithm - Key pair algorithm
      bits - the number of bits of the generated private key
      Throws:
      java.security.cert.CertificateException
    • SelfSignedCertificate

      public SelfSignedCertificate(java.lang.String fqdn, java.util.Date notBefore, java.util.Date notAfter) throws java.security.cert.CertificateException
      Deprecated.
      Creates a new instance.

      Algorithm: RSA

      Parameters:
      fqdn - a fully qualified domain name
      notBefore - Certificate is not valid before this time
      notAfter - Certificate is not valid after this time
      Throws:
      java.security.cert.CertificateException
    • SelfSignedCertificate

      public SelfSignedCertificate(java.lang.String fqdn, java.util.Date notBefore, java.util.Date notAfter, java.lang.String algorithm, int bits) throws java.security.cert.CertificateException
      Deprecated.
      Creates a new instance.
      Parameters:
      fqdn - a fully qualified domain name
      notBefore - Certificate is not valid before this time
      notAfter - Certificate is not valid after this time
      algorithm - Key pair algorithm
      bits - the number of bits of the generated private key
      Throws:
      java.security.cert.CertificateException
    • SelfSignedCertificate

      public SelfSignedCertificate(java.lang.String fqdn, java.security.SecureRandom random, int bits) throws java.security.cert.CertificateException
      Deprecated.
      Creates a new instance.

      Algorithm: RSA

      Parameters:
      fqdn - a fully qualified domain name
      random - the SecureRandom to use
      bits - the number of bits of the generated private key
      Throws:
      java.security.cert.CertificateException
    • SelfSignedCertificate

      public SelfSignedCertificate(java.lang.String fqdn, java.security.SecureRandom random, java.lang.String algorithm, int bits) throws java.security.cert.CertificateException
      Deprecated.
      Creates a new instance.
      Parameters:
      fqdn - a fully qualified domain name
      random - the SecureRandom to use
      algorithm - Key pair algorithm
      bits - the number of bits of the generated private key
      Throws:
      java.security.cert.CertificateException
    • SelfSignedCertificate

      public SelfSignedCertificate(java.lang.String fqdn, java.security.SecureRandom random, int bits, java.util.Date notBefore, java.util.Date notAfter) throws java.security.cert.CertificateException
      Deprecated.
      Creates a new instance.

      Algorithm: RSA

      Parameters:
      fqdn - a fully qualified domain name
      random - the SecureRandom to use
      bits - the number of bits of the generated private key
      notBefore - Certificate is not valid before this time
      notAfter - Certificate is not valid after this time
      Throws:
      java.security.cert.CertificateException
    • SelfSignedCertificate

      public SelfSignedCertificate(java.lang.String fqdn, java.security.SecureRandom random, int bits, java.util.Date notBefore, java.util.Date notAfter, java.lang.String algorithm) throws java.security.cert.CertificateException
      Deprecated.
      Creates a new instance.
      Parameters:
      fqdn - a fully qualified domain name
      random - the SecureRandom to use
      bits - the number of bits of the generated private key
      notBefore - Certificate is not valid before this time
      notAfter - Certificate is not valid after this time
      algorithm - Key pair algorithm
      Throws:
      java.security.cert.CertificateException
    • SelfSignedCertificate

      private SelfSignedCertificate(SelfSignedCertificate.Builder builder) throws java.security.cert.CertificateException
      Deprecated.
      Throws:
      java.security.cert.CertificateException
  • Method Details

    • builder

      public static SelfSignedCertificate.Builder builder()
      Deprecated.
    • certificate

      public java.io.File certificate()
      Deprecated.
      Returns the generated X.509 certificate file in PEM format.
    • privateKey

      public java.io.File privateKey()
      Deprecated.
      Returns the generated EC/RSA private key file in PEM format.
    • cert

      public java.security.cert.X509Certificate cert()
      Deprecated.
      Returns the generated X.509 certificate.
    • key

      public java.security.PrivateKey key()
      Deprecated.
      Returns the generated EC/RSA private key.
    • delete

      public void delete()
      Deprecated.
      Deletes the generated X.509 certificate file and EC/RSA private key file.
    • newSelfSignedCertificate

      static java.lang.String[] newSelfSignedCertificate(java.lang.String fqdn, java.security.PrivateKey key, java.security.cert.X509Certificate cert) throws java.io.IOException, java.security.cert.CertificateEncodingException
      Deprecated.
      Throws:
      java.io.IOException
      java.security.cert.CertificateEncodingException
    • safeDelete

      private static void safeDelete(java.io.File certFile)
      Deprecated.
    • safeClose

      private static void safeClose(java.io.File keyFile, java.io.OutputStream keyOut)
      Deprecated.
    • isBouncyCastleAvailable

      private static boolean isBouncyCastleAvailable()
      Deprecated.