In diesem Thema wird beschrieben, wie Sie One-Way-TLS und mTLS auf dem Istio-Ingress aktivieren.
One-Way-TLS konfigurieren
Verwenden Sie One-Way-TLS, um API-Proxyendpunkte auf dem Istio-Ingress 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 im Namespace istio-system
und fügen Sie der Überschreibungsdatei den Secret-Namen hinzu:
- Erstellen Sie das Secret:
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 Istio-Ingress 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
Erstellen Sie zwei Kubernetes-Secrets im Namespaceistio-system
. Das erste Secret ist für die Zertifizierungsstelle und das zweite für das SSL-Zertifikat/SSL-Schlüssel-Paar bestimmt.
Fügen Sie sie dann der Überschreibungsdatei hinzu.
- Erstellen Sie zwei Kubernetes-Secrets im Namespace
istio-system
. Das erste Secret ist für die Zertifizierungsstelle und das zweite für das SSL-Zertifikat/SSL-Schlüssel-Paar bestimmt: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:
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