Cet article explique comment activer les protocoles TLS et mTLS unidirectionnels sur la passerelle d'entrée ingressgateway.
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"
Où $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 le fichier de clé TLS et le fichier de certificat. Pour plus d'informations, consultez la section Créer des certificats TLS.
Option 2 : secret Kubernetes
Créez un secret Kubernetes et ajoutez-le à votre fichier de remplacement.
- Créez le secret dans l'un des deux espaces de noms suivants :
apigee
si vous utilisez une passerelle d'entrée Apigee.istio-system
si vous utilisez Anthos Service Mesh installé par le client.
Passerelle d'entrée Apigee
kubectl create -n apigee secret generic $SECRET_NAME \ --from-file=key=$KEY_FILE \ --from-file=cert=$CERT_FILE
Anthos Service Mesh
kubectl create -n istio-system secret generic $SECRET_NAME \ --from-file=key=$KEY_FILE \ --from-file=cert=$CERT_FILE
- 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
Configuration de 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 un certificat CA (CA) avec un certificat SSL et un fichier de clé dans la propriété virtualhosts
de votre fichier de remplacement :
virtualhosts:
- name: $ENVIRONMENT_GROUP_NAME
tlsMode: MUTUAL
caCertPath: "$CA_FILE"
sslCertPath: "$CERT_FILE"
sslKeyPath: "$KEY_FILE"
Où $ENVIRONMENT_GROUP_NAME est le nom d'un groupe d'environnement avec les alias d'hôte correspondants, $CA_FILE est un certificat autorisé, et $CERT_FILE et $KEY_FILE sont des clés et un certificat TLS. Consultez la section 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.
- Créez deux secrets Kubernetes dans l'un des deux espaces de noms suivants :
apigee
si vous utilisez une passerelle d'entrée Apigee.istio-system
si vous utilisez Anthos Service Mesh installé par le client.
Passerelle d'entrée Apigee
kubectl create -n apigee secret generic $SECRET_NAME \ --from-file=key=$KEY_FILE \ --from-file=cert=$CERT_FILE
Anthos Service Mesh
kubectl create -n istio-system secret generic $SECRET_NAME \ --from-file=key=$KEY_FILE \ --from-file=cert=$CERT_FILE
- Créez un secret pour l'autorité de certification :
Passerelle d'entrée Apigee
kubectl create -n apigee secret generic $SECRET_NAME-cacert \ --from-file=cacert=$CA_FILE
Anthos Service Mesh
kubectl create -n istio-system secret generic $SECRET_NAME-cacert \ --from-file=cacert=$CA_FILE
- 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