Configurer TLS pour l'interface utilisateur de gestion

Edge pour le cloud privé v4.19.01

Par défaut, vous accédez à l'interface utilisateur de gestion Edge via HTTP à l'aide de l'adresse IP du nœud du serveur de gestion et du port 9000. Exemple :

http://ms_IP:9000

Vous pouvez également configurer l'accès TLS à l'interface utilisateur de gestion afin que vous puissiez y accéder sous la forme suivante:

https://ms_IP:9443

Dans cet exemple, vous configurez l'accès TLS pour utiliser le port 9443. Toutefois, ce numéro de port n'est pas requis par Edge. Vous pouvez configurer le serveur de gestion pour utiliser d'autres valeurs de port. La seule condition requise est que votre pare-feu autorise le trafic sur le port spécifié.

Assurez-vous que votre port TLS est ouvert

La procédure décrite dans cette section configure le protocole TLS de sorte qu'il utilise le port 9443 sur le serveur de gestion. Quel que soit le port que vous utilisez, vous devez vous assurer qu'il est ouvert sur le serveur de gestion. Par exemple, vous pouvez utiliser la commande suivante pour l'ouvrir:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9443 -j ACCEPT --verbose

Configurer TLS

Pour configurer l'accès TLS à l'interface utilisateur de gestion, procédez comme suit:

  1. Générez le fichier JKS du keystore contenant votre certification TLS et votre clé privée, puis copiez-le sur le nœud Management Server. Pour en savoir plus, consultez Configurer TLS/SSL pour les périphériques sur site.
  2. Exécutez la commande suivante pour configurer TLS :
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl
  3. Saisissez le numéro de port HTTPS (par exemple, 9443).
  4. Indiquez si vous souhaitez désactiver l'accès HTTP à l'interface utilisateur de gestion. Par défaut, l'interface utilisateur de gestion est accessible via HTTP sur le port 9000.
  5. Saisissez l'algorithme du keystore. La valeur par défaut est JKS.
  6. Saisissez le chemin d'accès absolu au fichier JKS du keystore.

    Le script copie le fichier dans le répertoire /opt/apigee/customer/conf sur le nœud du serveur de gestion et change la propriété du fichier pour lui attribuer la valeur "apigee".

  7. Saisissez le mot de passe du keystore en texte clair.
  8. Le script redémarre ensuite l'interface utilisateur de gestion périphérique. Après le redémarrage, l'interface utilisateur de gestion accepte l'accès via TLS.

    Ces paramètres sont disponibles dans /opt/apigee/etc/edge-ui.d/SSL.sh.

Utiliser un fichier de configuration pour configurer le protocole TLS

Au lieu d'utiliser la procédure ci-dessus, vous pouvez transmettre un fichier de configuration à la commande de l'étape 2. Vous devez utiliser cette méthode si vous souhaitez définir des propriétés TLS facultatives.

Pour utiliser un fichier de configuration, créez-en un et ajoutez les propriétés suivantes:

HTTPSPORT=9443
DISABLE_HTTP=y
KEY_ALGO=JKS
KEY_FILE_PATH=/opt/apigee/customer/application/mykeystore.jks
KEY_PASS=clearTextKeystorePWord

Enregistrez le fichier dans un répertoire local avec le nom de votre choix. Exécutez ensuite la commande suivante pour configurer le protocole TLS:

/opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

configFile est le chemin d'accès complet au fichier que vous avez enregistré.

Configurer l'interface utilisateur Edge lorsque TLS s'arrête sur l'équilibreur de charge

Si vous disposez d'un équilibreur de charge qui transfère les requêtes à l'interface utilisateur Edge, vous pouvez choisir d'arrêter la connexion TLS sur l'équilibreur de charge, puis demander à l'équilibreur de charge de transférer les requêtes à l'interface utilisateur Edge via HTTP. Cette configuration est compatible, mais vous devez configurer l'équilibreur de charge et l'interface utilisateur Edge en conséquence.

La configuration supplémentaire est nécessaire lorsque l'interface utilisateur Edge envoie des e-mails aux utilisateurs pour définir leur mot de passe lors de la création de l'utilisateur ou lorsque la demande de l'utilisateur pour réinitialiser un mot de passe perdu. Cet e-mail contient l'URL que l'utilisateur sélectionne pour définir ou réinitialiser un mot de passe. Par défaut, si l'interface utilisateur Edge n'est pas configurée pour utiliser TLS, l'URL de l'e-mail généré utilise le protocole HTTP, et non HTTPS. Vous devez configurer l'équilibreur de charge et l'interface utilisateur Edge pour générer une adresse e-mail qui utilise HTTPS.

Pour configurer l'équilibreur de charge, assurez-vous qu'il définit l'en-tête suivant pour les requêtes transférées à l'interface utilisateur Edge:

X-Forwarded-Proto: https

Pour configurer l'interface utilisateur Edge:

  1. Ouvrez le fichier /opt/apigee/customer/application/ui.properties dans un éditeur. Si le fichier n'existe pas, créez-le :
    vi /opt/apigee/customer/application/ui.properties
  2. Définissez la propriété suivante dans ui.properties :
    conf/application.conf+trustxforwarded=true
  3. Enregistrez les modifications apportées à ui.properties.
  4. Redémarrez l'interface utilisateur Edge :
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Définir des propriétés TLS facultatives

L'interface utilisateur Edge accepte les propriétés de configuration TLS facultatives que vous pouvez utiliser pour définir les éléments suivants:

  • Protocole TLS par défaut
  • Liste des protocoles TLS compatibles
  • Algorithmes TLS compatibles
  • Algorithmes de chiffrement TLS compatibles

Ces paramètres facultatifs ne sont disponibles que lorsque vous définissez la propriété de configuration suivante dans un fichier de configuration, comme décrit dans la section Utiliser un fichier de configuration pour configurer le protocole TLS:

TLS_CONFIGURE=y

Le tableau suivant décrit ces propriétés :

Propriété Description
TLS_PROTOCOL Définit le protocole TLS par défaut pour l'interface utilisateur Edge. Par défaut, il s'agit de TLS 1.2. Les valeurs valides sont TLSv1.2, TLSv1.1, TLSv1.
TLS_ENABLED_PROTOCOL

Définit la liste des protocoles activés en tant que tableau séparé par des virgules. Exemple :

TLS_ENABLED_PROTOCOL=[\"TLSv1.2\", \"TLSv1.1\", \"TLSv1\"]

Notez que vous devez échapper le caractère ".

Par défaut, tous les protocoles sont activés.

TLS_DISABLED_ALGO

Définit les suites de chiffrement désactivées et peut également être utilisé pour empêcher l'utilisation de petites tailles de clé pour le handshake TLS. Il n'existe pas de valeur par défaut.

Les valeurs transmises à TLS_DISABLED_ALGO correspondent aux valeurs autorisées pour jdk.tls.disabledAlgorithms, comme décrit ici. Toutefois, vous devez échapper les caractères d'espace lorsque vous définissez TLS_DISABLED_ALGO:

TLS_DISABLED_ALGO=EC\ keySize\ <\ 160,RSA\ keySize\ <\ 2048

TLS_ENABLED_CIPHERS

Définit la liste des algorithmes de chiffrement TLS disponibles sous la forme d'un tableau séparé par des virgules. Exemple :

TLS_ENABLED_CIPHERS=[\"TLS_DHE_RSA_WITH_AES_128_CBC_SHA\",
\"TLS_DHE_DSS_WITH_AES_128_CBC_SHA\"]

Notez que vous devez échapper le caractère ".

La liste par défaut des algorithmes de chiffrement activés est la suivante:

"TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
"TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
"TLS_RSA_WITH_AES_256_CBC_SHA",
"TLS_RSA_WITH_AES_128_CBC_SHA",
"SSL_RSA_WITH_RC4_128_SHA",
"SSL_RSA_WITH_RC4_128_MD5",
"TLS_EMPTY_RENEGOTIATION_INFO_SCSV"

Cliquez ici pour consulter la liste des algorithmes de chiffrement disponibles.

Désactiver les protocoles TLS

Pour désactiver les protocoles TLS, vous devez modifier le fichier de configuration, comme décrit dans la section Utiliser un fichier de configuration pour configurer le protocole TLS, comme suit:

  1. Ouvrez le fichier de configuration dans un éditeur.
  2. Pour désactiver un protocole TLS unique (TLSv1.0, par exemple), ajoutez le code suivant au fichier de configuration :
    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1"

    Pour désactiver plusieurs protocoles (TLSv1.0 et TLSv1.1, par exemple), ajoutez le code suivant au fichier de configuration:

    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1, tlsv1.1"
  3. Enregistrez les modifications apportées au fichier de configuration.
  4. Exécutez la commande suivante pour configurer TLS :
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

    configFile est le chemin d'accès complet au fichier de configuration.

  5. Redémarrez l'interface utilisateur Edge :
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Utiliser des cookies sécurisés

Apigee Edge pour le cloud privé permet d'ajouter l'indicateur secure à l'en-tête Set-Cookie pour les réponses de l'interface utilisateur Edge. Si cet indicateur est présent, le cookie ne peut être envoyé que via des canaux compatibles avec TLS. S'il est absent, le cookie peut être envoyé via n'importe quel canal, qu'il soit sécurisé ou non.

Les cookies sans l'indicateur secure peuvent potentiellement permettre à un pirate informatique de capturer et de réutiliser les cookies ou de pirater une session active. Par conséquent, nous vous recommandons d'activer ce paramètre.

Pour définir l'indicateur secure pour les cookies de l'interface utilisateur Edge:

  1. Ouvrez le fichier suivant dans un éditeur de texte :
    /opt/apigee/customer/application/ui.properties

    Si le fichier n'existe pas, créez-le.

  2. Définissez la propriété conf_application_session.secure sur true dans le fichier ui.properties, comme illustré dans l'exemple suivant :
    conf_application_session.secure=true
  3. Enregistrez les modifications
  4. Redémarrez l'interface utilisateur Edge à l'aide de l'utilitaire apigee-serice, comme le montre l'exemple suivant :
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Pour vérifier que la modification fonctionne, vérifiez les en-têtes de réponse de l'interface utilisateur Edge à l'aide d'un utilitaire tel que curl. Exemple:

curl -i -v https://edge_UI_URL

L'en-tête doit contenir une ligne semblable à celle-ci:

Set-Cookie: secure; ...

Désactiver TLS sur l'interface utilisateur Edge

Pour désactiver le protocole TLS sur l'interface utilisateur Edge, utilisez la commande suivante:

/opt/apigee/apigee-service/bin/apigee-service edge-ui disable-ssl