Exécutez Liberty dans un environnement où vous devez utiliser des certificats tiers existants susceptibles d'être signés par une autorité de certification qui fournit l'approbation.
Avant de commencer
- Créez un fichier server.crt qui contient le certificat et un fichier server.key qui contient la clé privée.
- Utilisez la commande openssl et la commande Java keytool pour créer le fichier trust.jks et le fichier key.jks d'après le fichier server.crt et le fichier server.key.
Utilisez l'exemple suivant pour créer les fichiers JKS de magasin de clés et de magasin de clés de confiance :
- Exportez le certificat d'autorité de certification et la clé du serveur au format PKCS12 (Public Key Cryptography Standards 12)
.
openssl pkcs12 -export -in server.crt -inkey server.key -out key.p12 -name default -passout pass:mypassword
- Importez le fichier PKCS12 du serveur dans le fichier de clés key.jks.
keytool -importkeystore -deststorepass mypassword -destkeypass mypassword -destkeystore key.jks -srckeystore key.p12 -srcstoretype PKCS12 -srcstorepass mypassword -alias default
- Importez le fichier serveur de l'autorité d'accréditation dans le fichier de clés trust.jks.
keytool -importcert -keystore trust.jks -storepass mypassword -file server.crt -alias default -noprompt
- Déterminez si la configuration SSL est déjà créée. Pour ce faire, vérifiez si les secrets existent en exécutant la commande suivante :
kubectl get secrets
Si la configuration SSL existe, les secrets suivants s'affichent :
mb-keystore, mb-keystore-password, mb-truststore, mb-truststore-password
Procédure
- Si la configuration SSL n'a pas été créée, procédez comme suit pour activer automatiquement SSL avec des certificats tiers :
- Créez les clés secrètes Kubernetes ci-après. Cet exemple utilise la commande Liberty
securityUtility encode pour coder le mot de passe de magasin de clés et de magasin de clés de confiance avec le chiffrement XOR.
kubectl create secret generic mb-keystore --from-file=./key.jks
kubectl create secret generic mb-truststore --from-file=./trust.jks
kubectl create secret generic mb-keystore-password --from-literal=password="{xor}Ej4xPjg6MjoxKw =="
kubectl create secret generic mb-truststore-password --from-literal=password="{xor}Ej4xPjg6MjoxKw=="
- Définissez les valeurs suivantes lorsque vous déployez le diagramme Liberty Helm :
- ssl.enabled=true
- Cette option indique au diagramme Helm que le protocole sécurisé HTTPS sera utilisé.
- ssl.useClusterSSLConfiguration=true
- Cette option indique au diagramme Helm qu'il convient de monter le certificat créé, utilisé pour le magasin de clés et le magasin de clés de confiance.
- ssl.createClusterSSLConfiguration=true
- Cette option indique à Helm qu'il convient de créer la configuration Liberty qui utilise les certificats tiers et les secrets de mot de passe. Lorsqu'elle a pour valeur true, cette option n'écrase pas les certificats et les secrets que vous venez de créer.
- service.port=numéro_port_sécurisé
- Le port sécurisé par défaut est 9443.
- service.targetPort=numéro_port_sécurisé
- Le port sécurisé par défaut est 9443.
- ingress.secureBackends=true
- Si Ingress est activé, utilisez cette option de manière à permettre à Ingress de communiquer avec l'application Liberty sécurisée.
- Si la configuration SSL est déjà créée, procédez comme suit pour activer automatiquement SSL :
- Supprimez les secrets qui ont été précédemment créés.
kubectl delete secrets mb-keystore mb-keystore-password mb-truststore mb-truststore-password
- Créez les clés secrètes Kubernetes suivantes :
kubectl create secret generic mb-keystore --from-file=./key.jks
kubectl create secret generic mb-truststore --from-file=./trust.jks
kubectl create secret generic mb-keystore-password --from-literal=password="{xor}Ej4xPjg6MjoxKw=="
kubectl create secret generic mb-truststore-password --from-literal=password="{xor}Ej4xPjg6MjoxKw=="
- Définissez les valeurs suivantes lorsque vous déployez le diagramme Liberty Helm :
- ssl.enabled=true
- Cette option indique au diagramme Helm que le protocole sécurisé HTTPS sera utilisé.
- ssl.useClusterSSLConfiguration=true
- Cette option indique au diagramme Helm qu'il convient de monter le certificat créé, utilisé pour le magasin de clés et le magasin de clés de confiance.
- ssl.createClusterSSLConfiguration=false
- Cette option indique à Helm qu'il convient de ne pas créer la configuration Liberty qui utilise les certificats tiers et les secrets de mot de passe.
- service.port=numéro_port_sécurisé
- Le port sécurisé par défaut est 9443.
- service.targetPort=numéro_port_sécurisé
- Le port sécurisé par défaut est 9443.
- ingress.secureBackends=true
- Si Ingress est activé, utilisez cette option de manière à permettre à Ingress de communiquer avec l'application Liberty sécurisée.