Configurer TLS et mTLS sur la passerelle d'entrée

Dans cette rubrique, nous expliquons comment activer les protocoles TLS unidirectionnel et mTLS sur la passerelle d'entrée.

Configurer une connexion TLS unidirectionnelle

Utilisez le protocole TLS unidirectionnel pour sécuriser les points de terminaison du proxy d'API sur la passerelle d'entrée. Pour activer le protocole TLS unidirectionnel, configurez l'entrée avec des paires certificat/clé TLS ou avec un secret Kubernetes, comme expliqué dans les options suivantes.

Option 1 : paire clé/certificat

Fournissez les fichiers de certificat et de clé SSL dans la propriété virtualhosts de votre fichier de remplacement :

virtualhosts:
  - name: $ENVIRONMENT_GROUP_NAME
    sslCertPath: "$CERT_FILE"
    sslKeyPath: "$KEY_FILE"

$ENVIRONMENT_GROUP_NAME est le nom d'un groupe d'environnements avec les alias d'hôte correspondants, et $CERT_FILE et $KEY_FILE sont respectivement les fichiers de clé et de certificat TLS. Pour plus d'informations, consultez Créer des certificats TLS.

Option 2 : secret Kubernetes

Créez un secret Kubernetes et ajoutez-le à votre fichier de remplacement.

  1. Créez le secret dans l'espace de noms apigee :
    kubectl create -n APIGEE_NAMESPACE secret generic $SECRET_NAME  \
      --from-file=key=$KEY_FILE \
      --from-file=cert=$CERT_FILE
  2. Configurez la propriété virtualhosts dans votre fichier de remplacement :
    virtualhosts:
      - name: $ENVIRONMENT_GROUP_NAME
        tlsMode: SIMPLE  # Note: SIMPLE is the default, so it is optional.
        sslSecret: $SECRET_NAME

Configurer mTLS

Au lieu d'un protocole TLS unidirectionnel, vous pouvez configurer l'authentification mTLS sur la passerelle d'entrée. Deux options permettent de configurer l'authentification mTLS, comme expliqué ci-dessous.

Option 1 : paire clé/certificat et fichier CA

Fournissez des données de certificat TLS contenant des certificats d'autorité de certification :

virtualhosts:
  - name: $ENVIRONMENT_GROUP_NAME
    tlsMode: MUTUAL
    caCertPath: "$CA_FILE"
    sslCertPath: "$CERT_FILE"
    sslKeyPath: "$KEY_FILE"

$ENVIRONMENT_GROUP_NAME est le nom d'un groupe d'environnement avec les alias d'hôte correspondants, $CA_FILE spécifie les données de certificat TLS (fichier de groupe d'autorités de certification) contenant les certificats de l'autorité de certification, et $CERT_FILE et $KEY_FILE sont des fichiers de clé et de certificat TLS. Consultez Créer des certificats TLS.

Option 2 : secrets Kubernetes

Créez deux secrets Kubernetes. Le premier secret correspond à la paire certificat/clé SSL. Le second secret correspond à l'autorité de certification. Ajoutez-les ensuite à votre fichier de remplacement.

  1. Créez deux secrets Kubernetes dans l'espace de noms apigee :
    kubectl create -n APIGEE_NAMESPACE secret generic $SECRET_NAME  \
      --from-file=key=$KEY_FILE \
      --from-file=cert=$CERT_FILE
  2. Créez un secret pour l'autorité de certification :
    kubectl create -n APIGEE_NAMESPACE secret generic $SECRET_NAME-cacert  \
      --from-file=cacert=$CA_FILE
  3. Configurez la propriété virtualhosts dans votre fichier de remplacement :
    virtualhosts:
      - name: $ENVIRONMENT_GROUP_NAME
        tlsMode: MUTUAL  # Note: Be sure to specify MUTUAL
        sslSecret: $SECRET_NAME