Valeurs SSL par défaut dans Liberty

Elles spécifient la configuration, le magasin de clés et le certificat SSL par défaut dans Liberty.

Certificat et magasin de clés par défaut

Les développeurs peuvent utiliser le paramètre createSSLCertificate dans la commande securityUtility pour créer des certificats auto-signés. Les utilisateurs peuvent appeler l'outil directement depuis la ligne de commande ou permettre au serveur de l'appeler afin de créer le certificat et le magasin de clés par défaut au démarrage du serveur.

Le serveur crée le magasin de clés et le certificat par défaut si un utilisateur dispose d'un élément de magasin de clés appelé defaultKeyStore dans le fichier server.xml. Exemple :
<keyStore id="defaultKeyStore" password="yourPassword" />

Si une configuration du magasin de clés est en place pour defaultKeyStore et si le magasin de clés n'existe pas au démarrage du serveur, le serveur appelle le paramètre createSSLCertificate. Ce paramètre crée le magasin de clés avec un mot de passe spécifié dans la configuration.

Détails du fichier de clés par défaut :
  • Emplacement : Le fichier du magasin de clés est appelé key.jks et il se trouve dans le répertoire resources/security du serveur ou des clients.
  • Type de magasin de clés : Le type de magasin de clés est JKS.
  • Mot de passe : Mot de passe qui est fourni dans la configuration.
Détails du certificat par défaut qui est créé par Liberty :
  • Type : Le certificat est un certificat autosigné.
  • Taille : La taille de certificat par défaut est 2048.
  • Algorithme de signature : L'algorithme de signature pour le certificat est SHA256WITHRSA.
  • Validité : Le certificat est valide pendant 365 jours.
  • SubjectDN : Le certificat est créé avec CN=<hostname>,OU=<client or server name>,O=ibm,C=US as the SubjectDN.

Le paramètre createSSLCertificate peut être appelé sur la ligne de commande si les utilisateurs souhaitent personnaliser le certificat.

Remarque : Les certificats auto-signés créés par le serveur autonome Liberty ne sont pas destinés à une utilisation en production. Ils sont créés pour faciliter la tâche du développeur. Ils ne sont pas moins sécurisés que les certificats émis par une autorité de certification de confiance. Cependant, les certificats utilisés en production doivent être chaînés correctement et émis ou signés par une autorité de certification de confiance. Les certificats chaînés qui sont émis par le contrôleur de collectivité pour les membres sont des certificats signés.

Configuration SSL par défaut

La configuration minimale nécessaire pour SSL est un élément de magasin de clés unique appelé defaultKeyStore. Lorsque defaultKeyStore existe dans la configuration, l'environnement d'exécution crée autour une configuration SSL appelée defaultSSLConfig.

Détails de defaultSSLConfig :

  • Protocole : lorsque le JRE IBM® est utilisé, le protocole est défini par défaut sur SSL_TLSv2. Si le JRE Oracle est utilisé, le protocole SSL est utilisé.
  • Chiffrements : la liste des chiffrements est créée par l'extraction d'une liste des chiffrements pris en charge depuis l'environnement d'exécution Java sous-jacent. Par défaut, la liste est réduite à tous les chiffrements d'au moins 128 bits ou 3DES. RC4 est retiré car son activation n'est pas considérée comme sûre. Les chiffrements ECDHE sont retirés car ils peuvent causer des erreurs si vous utilisez un serveur qui ne les prend pas en charge. La liste des chiffrements peut être personnalisée pour les inclure.
  • Authentification de client : par défaut, clientAuthentication et clientAuthenticationSupported sont désactivés.
  • Magasin de clés : dans la configuration par défaut, defaultKeyStore est utilisé à la fois comme magasin de clés et comme magasin de clés de confiance.

Un élément SSL appelé defaultSSLConfig peut être entré dans le fichier server.xml pour la personnalisation des propriétés de configuration SSL. Un élément ssl personnalisé appelé defaultSSLConfig continue d'être traité comme la configuration SSL par défaut tant qu'une configuration SSL différente n'est pas identifiée comme la valeur par défaut. Pour plus d'informations, voir Attributs de configuration SSL.

Pour désigner un élément ssl différent comme configuration SSL par défaut, les utilisateurs recourir à l'élément sslDefault.
<sslDefault sslRef="customSSLConfiguration" />

Les attributs de la configuration SSL par défaut sont utilisés pour créer un élément SSLContext. Cet élément SSLContext est défini dans le processus comme SSLContext par défaut via l'API Java™ SSLContext.setDefault(). Si une application appelle une API telle que httpURLConnection() avec une URL https et ne fournit aucune information SSL, l'application sélectionne l'élément SSLContext par défaut du processus. Dans ce cas, il s'agit de l'élément SSLContext qui est créé avec la configuration SSL par défaut de Liberty.

Liberty utilise l'élément SSLContext par défaut de JSSE si une configuration SSL par défaut n'est pas définie dans Liberty. L'élément SSLContext par défaut de JSSE utilise le fichier cacerts pour le magasin de clés et le magasin de clés de confiance. Liberty n'a pas de configuration SSL par défaut si la fonction SSL n'est pas définie ou si la configuration SSL qui existe n'est pas identifiée comme la configuration par défaut. La configuration par défaut est appelée defaultSSLConfig, et peut être implicite si un defaultKeyStore est défini ou une configuration SSL alternative peut être conçue à l'aide de l'élément sslDefault.

Les propriétés système javax, javax.net.ssl.keystore, sont utilisées pour configurer les informations concernant le magasin de clés et le magasin de clés de confiance pour le contexte SSL par défaut et elles ne doivent pas être utilisées. Si ces propriétés sont définies sur le processus, l'appel de SSLContext.setDefault() les efface.

[17.0.0.1 et ultérieur]Pour permettre à un élément SSL d'être utilisé par défaut pour les connexions SSL sortantes, vous pouvez utiliser l'attribut outboundSSLRef sur l'élément sslDefault.
<feature>transportSecurity-1.0</feature>
<sslDefault sslRef="mySSLConfig" outboundSSLRef="customSSLConfiguration" />
Pour spécifier un élément SSL sortant par défaut, la fonction transportSecurity-1.0 doit être activée. Lorsque outboundSSLRef est spécifié, les connexions SSL sortantes adoptent par défaut la configuration SSL spécifiée par cet attribut. Si la fonction transportSecurity-1.0 est manquante, l'attribut outboundSSLRef est ignoré. Si aucun attribut outboundSSLRef n'est spécifié, l'appel sortant adopte par défaut la valeur spécifiée par l'attribut sslRef ou defaultSSLConfig si sslRef ne référence pas une configuration SSL.

Icône indiquant le type de rubrique Rubrique de référence

Nom du fichier : rwlp_liberty_ssl_defaults.html