java.lang.Object
org.omnifaces.utils.security.Certificates
Collection of utility methods for working with Certificates and SSL.
- Author:
- Arjan Tijms
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
createJKSKeyStore
(Path path, char[] password, PrivateKey privateKey, X509Certificate certificate) Creates a JKS key store on disk initialized with the given private key and certificate, at the given location and with the given password.static void
createJKSTrustStore
(Path path, char[] password, X509Certificate[] certificates) Creates a JKS key trust on disk initialized with the given certificates, at the given location and with the given password.static String
createTempJKSKeyStore
(PrivateKey privateKey, X509Certificate certificate) Creates a temporary JKS key store on disk initialized with the given private key and certificate and the well known default password "changeit" (without quotes).static String
createTempJKSTrustStore
(X509Certificate[] certificates) Creates a temporary JKS trust store on disk initialized with the given certificates and the well known default password "changeit" (without quotes).static KeyPair
Generates a random RSA keypair with a keysize of 2048 bits.static X509Certificate[]
getCertificateChainFromServer
(String host, int port) Attempts to query a server for the X509 certificate chain it will use in the SSL handshake.static X509Certificate[]
getCertificateChainFromServer
(String host, int port, int timeout) Attempts to query a server for the X509 certificate chain it will use in the SSL handshake.static String
getHostFromCertificate
(X509Certificate[] serverCertificateChain) Extracts the host name from the first X509 certificate in a chain.static void
setSystemTrustStore
(String path) Sets the system-wide (JVM) trust store to the one referenced by the given path.static void
setSystemTrustStore
(String path, String password) Sets the system-wide (JVM) trust store to the one referenced by the given path.
-
Method Details
-
getCertificateChainFromServer
Attempts to query a server for the X509 certificate chain it will use in the SSL handshake.This method uses a default timeout of 15 seconds.
- Parameters:
host
- the server's hostport
- the server's port- Returns:
- The certificate chain, or null if it could not be obtained.
-
getCertificateChainFromServer
Attempts to query a server for the X509 certificate chain it will use in the SSL handshake.- Parameters:
host
- the server's hostport
- the server's porttimeout
- the socket timeout, in milliseconds.- Returns:
- The certificate chain, or null if it could not be obtained.
-
getHostFromCertificate
Extracts the host name from the first X509 certificate in a chain.This method assumes RFC 2253 format of the distinguished named, and will take the CN name to be representative of the host name.
- Parameters:
serverCertificateChain
- the chain from which to extract the host name- Returns:
- the CN from the first certificate corresponding to the host name
-
generateRandomRSAKeys
Generates a random RSA keypair with a keysize of 2048 bits.- Returns:
- a random RSA keypair
-
createTempJKSKeyStore
Creates a temporary JKS key store on disk initialized with the given private key and certificate and the well known default password "changeit" (without quotes).- Parameters:
privateKey
- the key used to initialize the key storecertificate
- the certificate used to initialize the key store- Returns:
- the path on disk to the temporary key store
-
createJKSKeyStore
public static void createJKSKeyStore(Path path, char[] password, PrivateKey privateKey, X509Certificate certificate) Creates a JKS key store on disk initialized with the given private key and certificate, at the given location and with the given password.- Parameters:
path
- the full path (directory and file name) where the key store is createdpassword
- the password used to protect the key storeprivateKey
- the key used to initialize the key storecertificate
- the certificate used to initialize the key store
-
createTempJKSTrustStore
Creates a temporary JKS trust store on disk initialized with the given certificates and the well known default password "changeit" (without quotes).- Parameters:
certificates
- the certificates used to initialize the trust store- Returns:
- the path on disk to the temporary trust store
-
createJKSTrustStore
Creates a JKS key trust on disk initialized with the given certificates, at the given location and with the given password.- Parameters:
path
- the full path (directory and file name) where the trust store is createdpassword
- the password used to protect the trust storecertificates
- the certificates used to initialize the trust store
-
setSystemTrustStore
Sets the system-wide (JVM) trust store to the one referenced by the given path.The default password "changeit" is used.
- Parameters:
path
- the path on disk where the trust store is located
-
setSystemTrustStore
Sets the system-wide (JVM) trust store to the one referenced by the given path.The default password "changeit" is used.
- Parameters:
path
- the path on disk where the trust store is locatedpassword
- the password to access the trust store
-