Configurer TLS pour l'interface utilisateur de gestion

Par défaut, vous accédez à l'UI 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 Edge afin d'y accéder sous la forme suivante:

https://ms_IP:9443

Dans cet exemple, vous configurez l'accès TLS pour qu'il utilise 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 exigence est que votre pare-feu autorise le trafic sur le port spécifié.

Vérifiez que votre port TLS est ouvert

La procédure décrite dans cette section permet de configurer le protocole TLS afin 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 en savoir plus, consultez Configurer TLS/SSL pour Edge 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'UI 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 du nœud du serveur de gestion et définit la propriété du fichier sur "apigee".

  7. Saisissez le mot de passe du keystore en texte clair.
  8. Le script redémarre ensuite l'UI de gestion Edge. Après le redémarrage, l'UI de gestion est compatible avec 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

Au lieu de suivre la procédure ci-dessus, vous pouvez transmettre un fichier de configuration à la commande à l'étape 2 de la procédure. 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 un fichier et ajoutez les propriétés suivantes:

HTTPSPORT=9443
DISABLE_HTTP=y
# Set type to PKCS12 if you are using a PKCS12 keystore
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 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é.

Utiliser un keystore PKCS12 pour les systèmes d'exploitation compatibles avec FIPS

Si vous utilisez Edge pour le cloud privé sur un système d'exploitation compatible avec FIPS, vous devez utiliser un keystore PKCS12. Vous pouvez générer un keystore PKCS12 à l'aide de commandes OpenSSL standards. Lorsque vous utilisez un keystore PKCS12, définissez KEY_ALGO=PKCS12 dans le fichier de configuration.

Configurer l'UI Edge lorsque TLS se termine sur l'équilibreur de charge

Si vous disposez d'un équilibreur de charge qui transfère les requêtes vers l'UI Edge, vous pouvez choisir de mettre fin à la connexion TLS sur l'équilibreur de charge, puis de demander à l'équilibreur de charge de transférer les requêtes vers l'UI 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'UI Edge envoie aux utilisateurs des e-mails pour définir leur mot de passe lors de leur création ou lorsqu'ils demandent à réinitialiser 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 d'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 sur les requêtes transférées à l'UI 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 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 le 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 et TLSv1.
TLS_ENABLED_PROTOCOL

Définit la liste des protocoles activés sous la forme d'un tableau de valeurs séparées 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 de valeurs séparées 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 ".

Voici la liste par défaut des algorithmes de chiffrement activés:

"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, 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 ce qui suit au fichier de configuration :
    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1"

    Pour désactiver plusieurs protocoles (TLSv1.0 et TLSv1.1, par exemple), 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 compatibles avec TLS. Si elle n'est pas présente, 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 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'UI 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 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'UI 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 sur l'interface utilisateur Edge

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

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