Configurer le protocole TLS pour l'API BaaS

Edge pour Private Cloud version 4.17.09

TLS (Transport Layer Security, dont le prédécesseur est SSL) est la technologie de sécurité standard pour garantir une messagerie sécurisée et chiffrée dans votre environnement d'API. Vous pouvez configurer le protocole TLS sur le portail API BaaS et les nœuds de pile API BaaS.

L'image suivante montre un schéma de déploiement typique d'API BaaS avec un seul portail BaaS et trois nœuds d'API BaaS.

Les développeurs utilisent un navigateur pour envoyer des requêtes au portail. Par défaut, les requêtes utilisent le protocole sur le port 9000 du nœud du portail.

Ce déploiement inclut un équilibreur de charge entre les nœuds du portail et de la pile. Dans ce le portail envoie des requêtes HTTP à l'équilibreur de charge, transfère les requêtes vers l'un des nœuds de la pile. Il s'agit du déploiement recommandé pour un système de production.

Options de configuration TLS

Lorsque vous configurez TLS pour API BaaS, plusieurs options s'offrent à vous:

  • Configurer TLS sur le portail et sur l'équilibreur de charge pour les nœuds de pile

    Dans cette configuration, les développeurs accèdent au portail à l'aide du protocole HTTPS, s'exécute dans le navigateur utilise le protocole HTTPS pour envoyer des requêtes aux nœuds de la pile de votre équilibreur de charge. L'équilibreur de charge utilise le protocole HTTP pour accéder aux nœuds de la pile.
  • Configurer TLS sur le portail, l'équilibreur de charge et les nœuds de pile

    Pour plus de sécurité, configurez l'équilibreur de charge afin qu'il utilise le protocole TLS pour accéder aux nœuds de la pile.
  • Configurer TLS sur le portail et sur un seul nœud de pile

    Dans un environnement de petite taille, tel qu'un environnement de test ou de développement, il se peut que vous n'ayez qu'un seul un nœud de pile unique, ce qui signifie qu'il n'est pas nécessaire d'inclure un équilibreur de charge. Dans cette configuration, configurer TLS sur les nœuds du portail et de la pile.
  • Configurer TLS sur un équilibreur de charge pour le portail

    Une option qui n'est pas illustrée ci-dessus consiste à utiliser un équilibreur de charge devant le nœud du portail. Dans ce vous pouvez configurer TLS sur l'équilibreur de charge, et éventuellement sur le entre l'équilibreur de charge et le portail.

Assurez-vous que le port TLS est ouvert

Les procédures ci-dessous permettent de configurer TLS sur le port 9000 du portail par défaut et sur le nœud de pile 8080. Vous pouvez toutefois modifier ce port si vous le souhaitez.

Quel que soit le port que vous utilisez, vous devez vous assurer qu'il est ouvert sur le nœud. Pour Par exemple, vous pouvez utiliser la commande suivante pour ouvrir le port 8443:

$ iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT --verbose
<ph type="x-smartling-placeholder">

Configurer TLS sur la pile BaaS de l'API

Par défaut, TLS est désactivé pour la pile d'API BaaS. Vous accédez ensuite à l'API BaaS via HTTP en à l'aide de l'adresse IP ou du nom DNS du nœud de la pile et du port 8080. Exemple :

http://stack_IP:8080

Vous pouvez également configurer l'accès TLS à l'API BaaS afin d'y accéder dans le formulaire:

https://stack_IP:8080

Dans cet exemple, vous configurez l'accès TLS pour utiliser le port 8080. Toutefois, le port 8080 n'est pas obligatoire - Vous pouvez configurer la pile pour qu'elle utilise un autre port. La seule condition requise est que votre pare-feu autorise le trafic sur le port spécifié.

La pile n'accepte qu'un seul type de requête (HTTP ou HTTPS) sur un seul port. Par conséquent, Si vous configurez l'accès HTTPS sur le port 8080, vous ne pouvez pas utiliser HTTP pour accéder au port 8080. Si vous configuration de la pile pour qu'elle utilise le port 8443 avec HTTPS, la pile n'écoutera plus le port 8080.

Pour configurer l'accès TLS à la pile, procédez comme suit:

  1. Générez le fichier JKS du keystore contenant votre certification TLS et votre clé privée. Pour plus voir Configuration de TLS/SSL pour Edge On Locaux.
    Remarque: Assurez-vous que les mots de passe sur le keystore et ceux de la clé sont identiques.
  2. Copiez le fichier JKS du keystore dans un répertoire du nœud de la pile, tel que /opt/apigee/customer/application. Le répertoire doit être accessible à l'environnement "apigee". utilisateur.
  3. Modifier la propriété du fichier JKS pour « apigee » utilisateur:
    &gt; chown apigee:apigee /opt/apigee/customer/application/keystore.jks

    keystore.jks est le nom de votre fichier keystore.
  4. Modifiez le fichier /opt/apigee/customer/application/usergrid.properties pour définir les propriétés suivantes, y compris le chemin d'accès au fichier JKS et le mot de passe sur le keystore et la clé. Si ce fichier n'existe pas, créez-le:
    tomcat-server_scheme=https
    tomcat-server_secure=true
    tomcat-server_ssl.enabled=true
    tomcat-server_keystore.type=JKS
    tomcat-server_keystore.file=/opt/apigee/customer/application/keystore.jks
    tomcat-server_keystore.password=password
    tomcat-server_keyalias=keystore_alias
    tomcat-server_clientauth.enabled=false
    tomcat-server_ssl.protocols=TLSv1,TLSv1.1,TLSv1.2
    # Par défaut, l'accès TLS utilise le port 8080.
    # Utilisez cette propriété pour spécifier un autre port.
    # tomcat-server_port=8080


    Avertissement: La valeur du paramètre password doit être indiquée en texte clair. Vous devez donc protéger usergrid.properties contre les accès non autorisés y accéder.

    Utiliser tomcat-server_keyalias pour spécifier l'alias du keystore. Vous avez défini l'alias de clé au moment de sa création. Par exemple, vous pouvez la définir en utilisant l'option -alias dans la commande keytool.

    Utilisez tomcat-server_ssl.protocols. pour définir les protocoles TLS compatibles avec la pile. Pour obtenir la liste des protocoles compatibles avec Java 8, consultez la page http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#jssename.
  5. Configurez le nœud de pile:
    &gt; /opt/apigee/apigee-service/bin/apigee-service configurer baas-usergrid
  6. Redémarrez la pile BaaS:
    &gt; /opt/apigee/apigee-service/bin/apigee-service redémarrage baas-usergrid
  7. Vérifiez que TLS fonctionne en exécutant la commande cURL suivante sur le nœud de la pile à l'aide de la commande HTTPS:
    &gt; curl -k https://localhost:8080/status -v

    Si TLS est correctement configuré, vous devriez obtenir une réponse contenant des informations d'état.

    Si vous avez configuré l'accès TLS sur un port autre que le port 8080, modifiez la commande ci-dessus pour utiliser la le port approprié.
  8. Répétez l'opération sur tous les nœuds de la pile.
  9. Si un équilibreur de charge est placé devant les nœuds de la pile, configurez le pour envoyer des requêtes aux nœuds de la pile via HTTPS. Consultez la documentation pour plus d'informations.

    Si le portail envoie des requêtes directes à la pile, configurez-le de sorte que pour accéder à Stack over HTTPS, comme décrit dans la section suivante.
  10. Suivez la procédure ci-dessous dans "Configurer les nœuds de la pile BaaS de l'API pour TLS sur la pile ou le portail" pour s'assurer que le nœud de la pile dispose des URL TLS appropriées lors de la génération des réponses.

Configurer le portail pour accéder à la pile via TLS

Le portail BaaS exécuté dans un navigateur fonctionne en effectuant des appels d'API vers la pile BaaS. Si vous configurer la pile BaaS pour utiliser TLS, vous devez aussi configurer le portail pour effectuer ces appels via HTTPS.

Une installation d'API BaaS est généralement configurée pour:

  • Utiliser un équilibreur de charge entre les nœuds du portail et de la pile

    Configurez l'équilibreur de charge pour envoyer des requêtes aux nœuds de la pile via HTTPS. Consultez le sur votre équilibreur de charge pour plus d'informations.

    Dans cette configuration, le portail peut accéder à l'équilibreur de charge via HTTP ou HTTPS, selon comment configurer l'équilibreur de charge. Si l'équilibreur de charge utilise le protocole TLS, suivez la procédure ci-dessous pour configurer le portail pour envoyer des requêtes HTTPS à l'équilibreur de charge.
  • Demander au portail d'envoyer des demandes directes à la pile

    Configurez le portail pour accéder à la pile via HTTPS comme décrit ci-dessous.

Procédez comme suit pour configurer le portail BaaS de l'API afin d'effectuer des appels d'API via HTTPS:

  1. Configurez l'accès TLS sur la pile BaaS comme décrit ci-dessus ou sur l'équilibreur de charge pour le de pile comme décrit dans la documentation de votre équilibreur de charge.
  2. Modifiez /opt/apigee/customer/application/portal.properties. pour définir la propriété suivante. Si ce fichier n'existe pas, créez-le:
    baas.portal.config.overrideUrl=https://stackIP:port

    Indiquez comme valeur l'adresse IP ou le nom DNS et le port du nœud de pile API pour une installation à nœud unique, ou de l'équilibreur de charge si un équilibreur de charge est placé devant les nœuds de la pile BaaS de l'API.
  3. Configurez le nœud du portail:
    &gt; /opt/apigee/apigee-service/bin/apigee-service configurer le portail baas-portal
  4. Redémarrez le portail à l'aide de la commande suivante:
    &gt; /opt/apigee/apigee-service/bin/apigee-service redémarrage de baas-portal
  5. Si vous avez utilisé un certificat autosigné lors de la configuration de l'accès TLS à la pile ci-dessus, il est possible que votre navigateur n'autorise pas les requêtes envoyées à la pile depuis le portail. Si vous voyez Si une erreur s'affiche dans le navigateur et indique que l'accès HTTPS à la pile n'est pas autorisé, demandez URL dans votre navigateur et ajoutez une exception de sécurité pour autoriser l'accès:
    https://stackIP:port/status

    Indiquez l'adresse IP ou le nom DNS et le port du nœud de la pile d'API ou de l'équilibreur de charge.

Configurer TLS sur le portail BaaS de l'API

Par défaut, les utilisateurs accèdent au portail en envoyant des requêtes HTTP non chiffrées sur le port 9000 sur le Serveur de portail. Vous pouvez configurer le portail afin qu'il utilise HTTPS pour chiffrer les données envoyées vers et depuis le portail.

Par défaut, vous accédez au portail via HTTP en utilisant l'adresse IP ou le nom DNS du portail. et le port 9000. Exemple :

http://portal_IP:9000

Vous pouvez également configurer l'accès TLS au portail afin de pouvoir y accéder dans le formulaire:

https://portal_IP:9443

Dans cet exemple, vous configurez l'accès TLS pour utiliser le port 9443. Toutefois, le port 9443 n'est pas obligatoire - vous pouvez configurer le portail pour qu'il utilise un autre port.

Le portail ne peut accepter qu'un seul type de requête (HTTP ou HTTPS) sur un seul port. Par conséquent, Si vous configurez un accès HTTPS sur le port 9000, vous ne pouvez pas utiliser HTTP pour accéder au port 9000. Si vous configuré le portail pour qu'il utilise le port 9443 avec HTTPS, il n'écoutera plus le port 9000.

Pour configurer le protocole TLS pour le portail:

  1. Créez un fichier de clé et un fichier de certificat au format PEM.
    Remarque: Assurez-vous qu'aucun mot de passe ni phrase secrète n'est associé à la clé ou au certificat.
  2. Copiez les fichiers PEM dans un répertoire du nœud du portail, tel que /opt/apigee/customer/application. Le répertoire doit être accessible à l'environnement "apigee". utilisateur.
  3. Remplacez la propriété des fichiers PEM par "apigee" utilisateur:
    &gt; chown apigee:apigee /opt/apigee/customer/application/*.PEM
  4. Modifiez le fichier /opt/apigee/customer/application/portal.properties pour définir les propriétés suivantes. Si ce fichier n'existe pas, créez-le:
    baas.portal.ssl=on
    baas.portal.ssl.certificate=/opt/apigee/customer/application/defaultcert.pem
    baas.portal.ssl.key=/opt/apigee/customer/application/defaultkey.pem
    baas.portal.ssl.protocols=TLSv1 TLSv1.1 TLSv1.2
    # Par défaut, l'accès TLS utilise le port 9000.
    # Utilisez cette propriété pour spécifier un autre port.
    # baas.portal.listen=9000


    Utiliser baas.portal.ssl.protocols pour définir les protocoles TLS compatibles avec le portail. Pour obtenir la liste des protocoles acceptés, consultez la Liste des noms de protocoles SSL définis par Nginx: http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_protocols.
  5. Configurez le nœud du portail:
    &gt; /opt/apigee/apigee-service/bin/apigee-service configurer le portail baas-portal
  6. Redémarrez le portail:
    &gt; /opt/apigee/apigee-service/bin/apigee-service redémarrage du portail baas-portal
  7. Suivez la procédure ci-dessous dans "Configurer les nœuds de la pile BaaS de l'API pour TLS sur la pile ou le portail" pour vous assurer que le nœud de la pile dispose de l'URL TLS correcte pour le portail.

Configurer des nœuds API BaaS pour TLS sur le Pile ou portail

Si vous incluez un équilibreur de charge devant les nœuds de la pile ou du portail, ou si vous activez le protocole TLS directement sur le nœud de portail ou de pile, vous devez configurer les nœuds avec les URL appropriées pour accéder à la pile et au portail. Par exemple, les nœuds de la pile nécessitent ces informations dans les cas suivants:

  • Inclure une URL dans les réponses aux requêtes API BaaS
  • Ajouter des liens dans les modèles d'e-mail lors de la réinitialisation d'un mot de passe ou de l'envoi d'autres les notifications.
  • Rediriger les utilisateurs vers des pages spécifiques du portail.

Si vous utilisez un équilibreur de charge devant les nœuds de la pile ou que vous configurez le protocole TLS sur le nœud de la pile, définissez la propriété suivante dans /opt/apigee/customer/application/usergrid.properties:

usergrid-deployment_usergrid.api.url.base=http://localhost:8080

Remplacez http://localhost:8080 par l'URL du chargement de votre équilibreur de charge. Si l'équilibreur de charge est configuré pour utiliser TLS, utilisez le protocole HTTPS. Vous uniquement Nécessité d'inclure le port si vous utilisez un port non standard, c'est-à-dire autre que le port 80 pour HTTP et le port 443 pour HTTPS.

Vous devez également définir la propriété suivante dans /opt/apigee/customer/application/portal.properties si utilisez un équilibreur de charge devant les nœuds de la pile:

baas.portal.config.overrideUrl=http://localhost:8080

Remplacez http://localhost:8080 par l'URL du pour la pile.

Si vous utilisez un équilibreur de charge devant le nœud de portail ou si vous configurez TLS sur le nœud de pile, définissez les propriétés suivantes dans usergrid.properties:

usergrid-deployment_portal.url=http://localhost:9000

Remplacez http://localhost:9000 par l'URL du à un équilibreur de charge HTTP(S) externe global. Si l'équilibreur de charge est configuré pour utiliser TLS, utilisez le protocole HTTPS. Toi ne devez inclure le port que si vous utilisez un port non standard (c'est-à-dire autre chose que port 80 pour HTTP et port 443 pour HTTPS.

Après avoir modifié le fichier usergrid.properties:

  1. Configurez le nœud de pile:
    &gt; /opt/apigee/apigee-service/bin/apigee-service configurer baas-usergrid
  2. Redémarrez la pile BaaS:
    &gt; /opt/apigee/apigee-service/bin/apigee-service redémarrage baas-usergrid
  3. Si vous avez modifié portal.properties, configurez le nœud du portail:
    &gt; /opt/apigee/apigee-service/bin/apigee-service configurer le portail baas-portal
  4. Redémarrez le portail BaaS:
    &gt; /opt/apigee/apigee-service/bin/apigee-service redémarrage du portail baas-portal