Package io.helidon.common.pki
Class KeyConfig.PemBuilder
- java.lang.Object
-
- io.helidon.common.pki.KeyConfig.PemBuilder
-
- Enclosing class:
- KeyConfig
public static final class KeyConfig.PemBuilder extends Object implements io.helidon.common.Builder<KeyConfig>
Builder for PEM files - accepts private key and certificate chain. Obtain an instance throughKeyConfig.pemBuilder(). If you have "standard" linux/unix private key, you must run "openssl pkcs8 -topk8 -in ./id_rsa -out ./id_rsa.p8" on it to work with this builder for password protected file; or "openssl pkcs8 -topk8 -in ./id_rsa -out ./id_rsa_nocrypt.p8 -nocrypt" for unprotected file. The only supported format is PKCS#8. If you have a different format, you must to transform it to PKCS8 PEM format (to use this builder), or to PKCS#12 keystore format (and useKeyConfig.KeystoreBuilder).
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description KeyConfigbuild()BuildKeyConfigbased on information from PEM files only.KeyConfig.PemBuildercertChain(Resource resource)Load certificate chain from PEM resource.KeyConfig.PemBuilderconfig(io.helidon.config.Config config)Update this builder from configuration.KeyConfig.PemBuilderkey(Resource resource)Read a private key from PEM format from a resource definition.KeyConfig.PemBuilderkeyPassphrase(char[] passphrase)Passphrase for private key.KeyConfig.PemBuilderpublicKey(Resource resource)Read a public key from PEM format from a resource definition.KeyConfig.BuildertoFullBuilder()Get a builder filled from this builder to add additional information (such as public key from certificate etc.).
-
-
-
Method Detail
-
key
public KeyConfig.PemBuilder key(Resource resource)
Read a private key from PEM format from a resource definition.- Parameters:
resource- key resource (file, classpath, URL etc.)- Returns:
- updated builder instance
-
publicKey
public KeyConfig.PemBuilder publicKey(Resource resource)
Read a public key from PEM format from a resource definition.- Parameters:
resource- key resource (file, classpath, URL etc.)- Returns:
- updated builder instance
-
keyPassphrase
public KeyConfig.PemBuilder keyPassphrase(char[] passphrase)
Passphrase for private key. If the key is encrypted (and in PEM PKCS#8 format), this passphrase will be used to decrypt it.- Parameters:
passphrase- passphrase used to encrypt the private key- Returns:
- updated builder instance
-
certChain
public KeyConfig.PemBuilder certChain(Resource resource)
Load certificate chain from PEM resource.- Parameters:
resource- resource (e.g. classpath, file path, URL etc.)- Returns:
- updated builder instance
-
build
public KeyConfig build()
BuildKeyConfigbased on information from PEM files only.- Specified by:
buildin interfaceio.helidon.common.Builder<KeyConfig>- Returns:
- new instance configured from this builder
-
toFullBuilder
public KeyConfig.Builder toFullBuilder()
Get a builder filled from this builder to add additional information (such as public key from certificate etc.).- Returns:
- builder for
KeyConfig
-
config
public KeyConfig.PemBuilder config(io.helidon.config.Config config)
Update this builder from configuration. Expected keys:- pem-key-path - path to PEM private key file (PKCS#8 format)
- pem-key-resource-path - path to resource on classpath
- pem-key-passphrase - passphrase of private key if encrypted
- pem-cert-chain-path - path to certificate chain PEM file
- pem-cert-chain-resource-path - path to resource on classpath
- Parameters:
config- configuration to update builder from- Returns:
- updated builder instance
-
-