Configurer TLS pour l'API de gestion

Par défaut, TLS est désactivé pour l'API de gestion. Vous accédez à l'API de gestion Edge via HTTP à l'aide de l'adresse IP du nœud du serveur de gestion et du port 8080. Exemple :

http://ms_IP:8080

Vous pouvez également configurer l'accès TLS à l'API de gestion afin de pouvoir y accéder dans au format suivant:

https://ms_IP:8443

Dans cet exemple, vous configurez l'accès TLS pour qu'il utilise le port 8443. Toutefois, ce numéro de port n'est pas obligatoire pour Edge. Vous pouvez configurer le serveur de gestion pour qu'il utilise d'autres valeurs de port. La seule exigence est que votre pare-feu autorise le trafic sur le port spécifié.

Pour garantir le chiffrement du trafic vers et depuis votre API de gestion, configurez les paramètres dans le fichier /opt/apigee/customer/application/management-server.properties.

Outre la configuration TLS, vous pouvez également contrôler la validation des mots de passe (longueur et le niveau de sécurité) en modifiant le fichier management-server.properties.

.

Assurez-vous que votre port TLS est ouvert

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

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

Configurer TLS

Modifier /opt/apigee/customer/application/management-server.properties pour contrôler l'utilisation de TLS sur le trafic vers et depuis votre API de gestion. Si ce fichier n'existe pas, créez-le.

Pour configurer l'accès TLS à l'API de gestion:

  1. Générez le fichier JKS du keystore contenant votre certification TLS et votre clé privée. Pour en savoir plus, consultez la section Configurer TLS/SSL pour Edge sur site.
  2. Copiez le fichier JKS du keystore dans un répertoire du nœud du serveur de gestion, tel que en tant que /opt/apigee/customer/application.
  3. Remplacez le propriétaire du fichier JKS par l'utilisateur "apigee" :
    chown apigee:apigee keystore.jks

    keystore.jks est le nom de votre fichier keystore.

  4. Modifiez /opt/apigee/customer/application/management-server.properties pour définir les propriétés suivantes. Si ce fichier n'existe pas, créez-le:
    conf_webserver_ssl.enabled=true
    # Leave conf_webserver_http.turn.off set to false
    # because many Edge internal calls use HTTP.
    conf_webserver_http.turn.off=false
    conf_webserver_ssl.port=8443
    conf_webserver_keystore.path=/opt/apigee/customer/application/keystore.jks
    # Enter the obfuscated keystore password below.
    conf_webserver_keystore.password=OBF:obfuscatedPassword

    keyStore.jks correspond à votre fichier keystore. obfuscatedPassword correspond au mot de passe du keystore obscurci. Pour en savoir plus sur la génération d'un mot de passe masqué, consultez la section Configurer TLS/SSL pour Edge sur site.

  5. Redémarrez le serveur de gestion Edge à l'aide de la commande suivante :
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

L'API de gestion est désormais compatible avec l'accès via TLS.

.

Configurer l'interface utilisateur Edge afin d'utiliser TLS pour accéder l'API Edge

Dans la procédure ci-dessus, Apigee a recommandé conf_webserver_http.turn.off=false pour que l'interface utilisateur Edge peut continuer à effectuer des appels d'API Edge via HTTP.

Pour configurer l'interface utilisateur Edge afin d'effectuer ces appels via HTTPS uniquement, procédez comme suit :

  1. Configurez l'accès TLS à l'API de gestion comme décrit ci-dessus.
  2. Après avoir vérifié que TLS fonctionne pour l'API de gestion, modifiez /opt/apigee/customer/application/management-server.properties pour définir la propriété suivante :
    conf_webserver_http.turn.off=true
  3. Redémarrez le serveur de gestion Edge en exécutant la commande suivante :
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart 
  4. Modifiez /opt/apigee/customer/application/ui.properties pour définir la propriété suivante pour l'UI Edge :
    conf_apigee_apigee.mgmt.baseurl="https://FQ_domain_name:port/v1"

    FQ_domain_name est le nom de domaine complet, conformément à votre certificat. adresse IP du serveur de gestion, et port est le port spécifié ci-dessus par conf_webserver_ssl.port

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

  5. Seulement si vous avez utilisé un certificat autosigné (non recommandé dans un environnement de production) lors de la configuration de l'accès TLS à l'API de gestion ci-dessus, ajoutez la propriété suivante à ui.properties :
    conf/application.conf+play.ws.ssl.loose.acceptAnyCertificate=true

    Sinon, l'interface utilisateur Edge rejette un certificat autosigné.

  6. Redémarrez l'interface utilisateur d'Edge en exécutant la commande suivante :
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

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. Cela est nécessaire pour respecter les normes FIPS. En plus des autres configurations standards mentionnées dans cet article, ajoutez la configuration suivante à votre fichier management-server.properties:

conf/webserver.properties+keystore.type=PKCS12

Assurez-vous d'appliquer cette modification si votre environnement est compatible avec FIPS afin de garantir la compatibilité avec les normes de chiffrement requises.

Propriétés TLS pour le serveur de gestion

Le tableau suivant répertorie toutes les propriétés TLS/SSL que vous pouvez définir dans management-server.properties :

Propriétés Description

conf_webserver_http.port=8080

La valeur par défaut est 8080.

conf_webserver_ssl.enabled=false

Pour activer/désactiver TLS/SSL. Lorsque TLS/SSL est activé (true), vous devez également définir le paramètre ssl.port et keystore.path.

conf_webserver_http.turn.off=true

Pour activer/désactiver HTTP avec HTTPS. Si vous souhaitez n'utiliser que le protocole HTTPS, laissez la valeur par défaut sur true.

conf_webserver_ssl.port=8443

Port TLS/SSL.

Obligatoire lorsque TLS/SSL est activé (conf_webserver_ssl.enabled=true).

conf_webserver_keystore.path=path

Chemin d'accès à votre fichier keystore.

Obligatoire lorsque TLS/SSL est activé (conf_webserver_ssl.enabled=true).

conf_webserver_keystore.password=password

Utilisez un mot de passe obscurci au format suivant: OBF:xxxxxxxxxx.

conf_webserver_cert.alias=alias

Alias de certificat de keystore facultatif

conf_webserver_keymanager.password=password

Si votre gestionnaire de clés est associé à un mot de passe, saisissez une version obscurcie du mot de passe au format suivant :

OBF:xxxxxxxxxx

conf_webserver_trust.all=[false | true]

conf_webserver_trust.store.path=path

conf_webserver_trust.store.password=password

Configurez les paramètres de votre magasin de confiance. Déterminez si vous souhaitez tout accepter Certificats TLS/SSL (pour accepter les types non standards, par exemple) La valeur par défaut est false. Indiquez le chemin d'accès à votre magasin de confiance, puis saisissez un mot de passe de magasin de confiance masqué au format suivant :

OBF:xxxxxxxxxx

conf_http_HTTPTransport.ssl.cipher.suites.blacklist=CIPHER_SUITE_1, CIPHER_SUITE_2

conf_http_HTTPTransport.ssl.cipher.suites.whitelist=

Indiquez les suites de chiffrement que vous souhaitez inclure ou exclure. Par exemple, si vous découvrez une faille dans un chiffrement, vous pouvez l'exclure ici. Séparer plusieurs algorithmes de chiffrement par des virgules.

Les algorithmes de chiffrement que vous supprimez via la liste noire prévalent sur ceux inclus dans la liste. via la liste blanche.

Remarque : Par défaut, si aucune liste noire ou blanche n'est spécifiée, les algorithmes de chiffrement correspondant à l'expression régulière Java suivante sont exclus.

^.*_(MD5|SHA|SHA1)$
^TLS_RSA_.*$
^SSL_.*$
^.*_NULL_.*$
^.*_anon_.*$

Cependant, si vous spécifiez une liste noire, ce filtre est ignoré, et vous devez ajouter à la liste noire tous les chiffrements individuellement.

Pour en savoir plus sur les suites de chiffrement et l'architecture de cryptographie, consultez la Documentation des fournisseurs Oracle pour Java Cryptography Architecture pour JDK 8.

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

Entiers qui déterminent:

  • Taille du cache de session TLS/SSL (en octets) pour le stockage des informations de session pour plusieurs clients.
  • Durée pendant laquelle les sessions TLS/SSL peuvent durer avant d'expirer (en millisecondes).