In diesem Thema wird beschrieben, wie Sie One-Way-TLS und mTLS auf dem Ingress-Gateway aktivieren.
One-Way-TLS konfigurieren
Verwenden Sie One-Way-TLS, um API-Proxyendpunkte auf dem Ingress-Gateway zu schützen. Wenn Sie One-Way-TLS aktivieren möchten, konfigurieren Sie das Ingress mit TLS-Zertifikat/-Schlüsselpaaren oder mit einem Kubernetes-Secret, wie in den folgenden Optionen beschrieben.
Option 1: Schlüssel/Zertifikat-Paar
Geben Sie die SSL-Zertifikats- und SSL-Schlüsseldateien in der Überschreibungsdatei im Attribut virtualhosts
an:
virtualhosts:
- name: $ENVIRONMENT_GROUP_NAME
sslCertPath: "$CERT_FILE"
sslKeyPath: "$KEY_FILE"
Dabei ist $ENVIRONMENT_GROUP_NAME der Name einer Umgebungsgruppe mit entsprechenden Hostaliassen. $CERT_FILE und $KEY_FILE sind TLS-Schlüssel- und TLS-Zertifikatsdateien. Weitere Informationen finden Sie unter TLS-Zertifikate erstellen.
Option 2: Kubernetes-Secret
Erstellen Sie ein Kubernetes Secret und fügen Sie es der Überschreibungsdatei hinzu.
- Erstellen Sie das Secret in einem der beiden folgenden Namespaces:
apigee
-Namespace, wenn Sie das Apigee-Ingress-Gateway verwenden.istio-system
-Namespace, wenn Sie das vom Kunden installierte Anthos Service Mesh verwenden.
Apigee Ingress Gateway
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
- Konfigurieren Sie das Attribut
virtualhosts
in Ihrer Überschreibungsdatei:virtualhosts: - name: $ENVIRONMENT_GROUP_NAME tlsMode: SIMPLE # Note: SIMPLE is the default, so it is optional. sslSecret: $SECRET_NAME
mTLS konfigurieren
Anstatt One-Way-TLS zu konfigurieren, können Sie mTLS auf dem Ingress-Gateway konfigurieren. Es gibt zwei Optionen zum Konfigurieren von mTLS. Eine Erklärung für beide finden Sie unten.
Option 1: Schlüssel/Zertifikat-Paar und CA-Datei
Geben Sie ein von einer Zertifizierungsstelle (Certificate Authority, CA) ausgestelltes Zertifikat mit SSL-Zertifikats- und SSL-Schlüsseldateien in der Überschreibungsdatei im Attribut virtualhosts
an:
virtualhosts:
- name: $ENVIRONMENT_GROUP_NAME
tlsMode: MUTUAL
caCertPath: "$CA_FILE"
sslCertPath: "$CERT_FILE"
sslKeyPath: "$KEY_FILE"
Dabei ist $ENVIRONMENT_GROUP_NAME der Name einer Umgebungsgruppe mit entsprechenden Hostaliassen, $CA_FILE ein autorisiertes Zertifikat und $CERT_FILE sowie $KEY_FILE TLS-Schlüssel- und TLS-Zertifikatsdateien. Weitere Informationen finden Sie unter TLS-Zertifikate erstellen.
Option 2: Kubernetes-Secrets
Zwei Kubernetes-Secrets erstellen. Das erste Secret ist für das SSL-Zertifikat/SSL-Schlüssel-Paar und das zweite für die Zertifizierungsstelle bestimmt. Fügen Sie sie dann der Überschreibungsdatei hinzu.
- Erstellen Sie zwei Kubernetes-Secrets in einem der beiden folgenden Namespaces:
apigee
-Namespace, wenn Sie das Apigee-Ingress-Gateway verwenden.istio-system
-Namespace, wenn Sie das vom Kunden installierte Anthos Service Mesh verwenden.
Apigee Ingress Gateway
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
- Erstellen Sie ein Secret für die Zertifizierungsstelle:
Apigee Ingress Gateway
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
- Konfigurieren Sie das Attribut
virtualhosts
in Ihrer Überschreibungsdatei:virtualhosts: - name: $ENVIRONMENT_GROUP_NAME tlsMode: MUTUAL # Note: Be sure to specify MUTUAL sslSecret: $SECRET_NAME