Configurer TLS pour l'interface utilisateur de gestion

Edge for Private Cloud v4.19.01

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

http://ms_IP:9000

Vous pouvez également configurer l'accès TLS à l'interface utilisateur de gestion pour 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. Cependant, 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 de cette section permet de configurer 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

Procédez comme suit pour configurer l'accès TLS à l'interface utilisateur de gestion:

  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 du serveur de gestion. Pour plus d'informations, consultez la section Configurer TLS/SSL pour Edge On Premises.
  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 absolu vers le fichier JKS du keystore.

    Le script copie le fichier dans le répertoire /opt/apigee/customer/conf sur le nœud Management Server et remplace la propriété du fichier par "apigee".

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

    Vous pouvez consulter ces paramètres dans /opt/apigee/etc/edge-ui.d/SSL.sh.

Utiliser un fichier de configuration pour configurer TLS

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

Pour utiliser un fichier de configuration, créez un fichier 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 sous le nom de votre choix. Utilisez 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 au niveau de l'équilibreur de charge, puis de 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 requise 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 l'utilisateur demande la réinitialisation d'un mot de passe perdu. Cet e-mail contient une 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 dans 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 sur 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 prend en charge 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 acceptés
  • 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 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 sous forme de tableau d'éléments séparés par une virgule. 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 servir à empêcher que des clés de petite taille ne soient utilisées 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 espaces 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 d'éléments séparés par une virgule. 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 des algorithmes de chiffrement activés par défaut 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ésactivation des 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 TLS, comme suit:

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

    Pour désactiver plusieurs protocoles (par exemple, TLSv1.0 et TLSv1.1), ajoutez les éléments suivants 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 Private Cloud prend en charge l'ajout de 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 TLS. S'il n'est pas présent, le cookie peut être envoyé via n'importe quel canal, qu'il soit sécurisé ou non.

Les cookies sans l'indicateur secure peuvent permettre à un pirate informatique de capturer et de réutiliser le cookie, ou de pirater une session active. Il est donc recommandé 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 le montre 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 indiqué dans l'exemple suivant :
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Pour confirmer 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 ; par 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 dans l'interface utilisateur Edge

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

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