Configurer le transport et l'authentification SSL pour le JobServer - 7.0

author
Talend Documentation Team
EnrichVersion
7.0
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Real-Time Big Data Platform
task
Administration et monitoring > Monitoring des services
EnrichPlatform
Talend JobServer

Configurer le transport et l'authentification SSL

Ce document explique comment configurer le transport et l'authentification SSL pour Talend JobServer et Talend Administration Center en version 7.0.1, ou en d'anciennes versions avec l'installation des patchs pour Talend JobServer et Talend Administration Center livrés avec TPS-2307.

Rétro-compatibilité : toute ancienne configuration de Talend Administration Center et Talend JobServer devrait fonctionner après le patch. Dans ce cas, aucun SSL n'est utilisé pour le serveur ou le client de monitoring JMX.

Configurer Talend JobServer pour utiliser le protocole SSL avec le serveur de monitoring JMX

Le serveur de monitoring basé sur JMX démarre avec Talend JobServer à l'aide de <jobserver_home>/start_rs.sh. Sa configuration se trouve dans <jobserver_home>/conf/TalendJobServer.properties. Pour configurer le protocole SSL pour le serveur de monitoring, vous devez ajouter les paramètres de configuration suivants (les paramètres par défaut sont commentés) :

# Set to true to enforce SSL for JMX monitoring server
org.talend.jmxmp.useSSL=true
# Set to true to enforce certificate based client authentication for JMX monitoring server
org.talend.jmxmp.ssl.authenticate=true

org.talend.jmxmp.ssl.keyStore=<path_to_monitoring_server_keystore>
org.talend.jmxmp.ssl.keyStorePassword=<monitoring_server_keystore_password>
#org.talend.jmxmp.ssl.keyStoreType=JKS
    
org.talend.jmxmp.ssl.trustStore=<path_to_monitoring_server_truststore>
org.talend.jmxmp.ssl.trustStorePassword=<monitoring_server_truststore_password>
#org.talend.jmxmp.ssl.trustStoreType=JKS

#org.talend.jmxmp.ssl.enabled.protocols=TLSv1
#org.talend.jmxmp.ssl.enabled.cipher.suites=SSL_RSA_WITH_NULL_MD5

Vous pouvez trouver une liste de ciphers valides dans Désactiver certains ciphers SSL (facultatif). La valeur par défaut est SSL_RSA_WITH_NULL_MD5.

Par défaut, le protocole est TLSv1. Vous pouvez aussi préciser TLSv1.1 ou TLSv1.2.

Le TrustStore est nécessaire uniquement pour l'authentification client par certificat pour le serveur de monitoring JMX. Il doit correspondre au KeyStore indiqué dans le client de monitoring. Si org.talend.jmxmp.ssl.authenticate=true, le TrustStore est obligatoire. Sinon, le client Talend Administration Center ne peut pas être authentifié.

Le KeyStore défini ici est obligatoire pour le protocole SSL et doit correspondre au TrustStore précisé dans le client de monitoring. Vous pouvez utiliser le même TrustStore et KeyStore dans le serveur et dans le client de monitoring, mais ce n'est pas recommandé pour les environnements de production.

Remarque :

<jobserver_home>/start_jconsole.sh ne fonctionne pas avec le protocole SSL, car Jconsole ne peut pas se connecter à distance avec le protocole SSL via le protocole jmxmp. Mais vous pouvez vous connecter dans JConsole au processus JobServer local qui fournit les mêmes informations/MBeans.

Configurer Talend Administration Center pour utiliser le protocole SSL avec le client de monitoring JMX

Le client de monitoring JMX utilisé par Talend Administration Center est configuré dans <tac_home>/apache-tomcat/webapps/org.talend.administrator/WEB-INF/classes/monitoring_jmx_ssl.properties. Cette configuration contient les paramètres suivants (les paramètres par défaut sont commentés) :

# Set to true to enforce SSL for JMX monitoring client
org.talend.jmxmp.useSSL=true

org.talend.jmxmp.ssl.keyStore=<path_to_monitoring_client_keystore>
org.talend.jmxmp.ssl.keyStorePassword=<monitoring_client_keystore_password>
#org.talend.jmxmp.ssl.keyStoreType=JKS
    
org.talend.jmxmp.ssl.trustStore=<path_to_monitoring_client_truststore>
org.talend.jmxmp.ssl.trustStorePassword=<monitoring_client_truststore_password>
#org.talend.jmxmp.ssl.trustStoreType=JKS

#org.talend.jmxmp.ssl.enabled.protocols=TLSv1
#org.talend.jmxmp.ssl.enabled.cipher.suites=SSL_RSA_WITH_NULL_MD5

Cette configuration est similaire à celle du serveur. Le KeyStore est utilisé seulement si l'authentification client par certificat est configurée pour le serveur de monitoring JMX. Dans ce cas, le KeyStore est obligatoire. Sinon, le client ne peut pas être authentifié.

Le TrustStore doit correspondre au KeyStore du serveur et le KeyStore doit correspondre au TrustStore du serveur (si nécessaire). Si le TrustStore n'est pas défini, le client fait confiance à tous les serveurs de monitoring.

Activer le protocole SSL pour le port de commande et le port de fichier de Talend JobServer

Remarque : Rétro-compatibilité : Toute ancienne configuration pour Talend Administration Center, le Studio Talend et Talend JobServer fonctionne toujours.

La fonction pour activer le protocole SSL dans Talend Administration Center et dans le Studio Talend n'a pas changé.

L'activation du protocole SSL et la restriction de suites cipher dans jobserver/agent/conf/TalendJobServer.properties n'ont pas changé et conservent leur rétro-compatibilité :

  • Le protocole SSL (Secure Sockets Layer) est utilisé pour établir un lien crypté entre le JobServer et ses clients.
    org.talend.remote.jobserver.server.TalendJobServer.USE_SSL=true
  • Les suites cipher SSL (noms de suites cipher Java standard séparés par une virgule ',') sont désactivées. Sans paramètre, tous les ciphers supportés seront activés.
    org.talend.remote.jobserver.server.TalendJobServer.DISABLED_CIPHER_SUITES=

Configurer le protocole SSL serveur pour Talend JobServer

Le fichier jobserver/agent/conf/TalendJobServer.properties supporte maintenant des propriétés supplémentaires permettant de préciser le KeyStore et le TrustStore pour le port de commande et le port de fichier du JobServer.

org.talend.remote.server.ssl.keyStore=path_to_jobserver_keystore
org.talend.remote.server.ssl.keyStorePassword=jobserver_keystore_password
org.talend.remote.server.ssl.trustStore=path_to_jobserver_truststore
org.talend.remote.server.ssl.trustStorePassword=jobserver_truststore_password
org.talend.remote.server.ssl.enabled.protocols=jobserver_enabled_protocols (comma separated list)
org.talend.remote.server.ssl.authenticate=true or false

Le KeyStore doit correspondre au TrustStore du client (s'il est précisé ici) et le TrustStore est utilisé pour l'authentification client par certificat.

Si la propriété org.talend.remote.server.ssl.authenticate dans jobserver/agent/conf/TalendJobServer.properties est paramétrée à true, le client du JobServer (Talend Administration Center et le Studio Talend) doit définir un KeyStore correspondant au TrustStore du JobServer.

Configurer le protocole SSL client pour Talend JobServer

Les deux clients du JobServer (Talend Administration Center et le Studio Talend) supportent les nouvelles propriétés système qui précisent le KeyStore et le TrustStore du client.

Pour le Studio Talend il est recommandé de préciser ces propriétés système dans studio/Talend-Studio-linux-gtk-x86_64.ini:

-Dorg.talend.remote.client.ssl.keyStore=path_to_jobserver_client_keystore
-Dorg.talend.remote.client.ssl.keyStorePassword=jobserver_client_keystore_password
-Dorg.talend.remote.client.ssl.trustStore=path_to_jobserver_client_truststore
-Dorg.talend.remote.client.ssl.trustStorePassword=jobserver_client_truststore_password
-Dorg.talend.remote.client.ssl.enabled.protocols=jobserver_client_enabled_protocols (comma separated list)

Pour Talend Administration Center vous pouvez utiliser tac/apache-tomcat/bin/setenv.sh pour étendre la spécification JAVA_OPTS :

export JAVA_OPTS="$JAVA_OPTS -Xmx2048m -Dfile.encoding=UTF-8 -Dorg.talend.remote.client.ssl.keyStore=..."

Le KeyStore client est utilisé pour l’authentification client par certificat et doit correspondre au TrustStore configuré sur le serveur.

Mais si org.talend.remote.server.ssl.authenticate=false dans jobserver/agent/conf/TalendJobServer.properties, l'authentification client par certificat est désactivée et le KeyStore client n'a aucun effet.

Le TrustStore client doit correspondre au KeyStore configuré sur le serveur. S'il n'y a pas de TrustStore précisé dans le client, il fait confiance à tous les serveurs.