Questo argomento spiega come attivare TLS e mTLS in un'unica direzione sul gateway in entrata Istio.
Configurazione di TLS unidirezionale
Utilizza TLS unidirezionale per proteggere gli endpoint proxy API sul gateway in entrata Istio. Per attivare TLS unidirezionale, configura l'ingress con coppie di chiavi/certificati TLS o con un segreto Kubernetes, come spiegato nelle seguenti opzioni.
Opzione 1: coppia chiave/certificato
Fornisci i file del certificato e della chiave SSL nella proprietà virtualhosts
del file delle sostituzioni:
virtualhosts:
- name: $ENVIRONMENT_GROUP_NAME
sslCertPath: "$CERT_FILE"
sslKeyPath: "$KEY_FILE"
dove $ENVIRONMENT_GROUP_NAME è il nome di un gruppo di ambienti con gli alias host corrispondenti e $CERT_FILE e $KEY_FILE sono i file della chiave e del certificato TLS. Vedi Creare certificati TLS.
Opzione 2: secret Kubernetes
Crea un secret Kubernetes nello spazio dei nomi istio-system
e aggiungi il nome del secret al file delle sostituzioni:
- Crea il secret:
kubectl create -n istio-system secret generic $SECRET_NAME \ --from-file=key=$KEY_FILE \ --from-file=cert=$CERT_FILE
- Configura la proprietà
virtualhosts
nel file delle sostituzioni:virtualhosts: - name: $ENVIRONMENT_GROUP_NAME tlsMode: SIMPLE # Note: SIMPLE is the default, so it is optional. sslSecret: $SECRET_NAME
Configurazione di mTLS
Anziché TLS unidirezionale, puoi configurare mTLS sul gateway in entrata Istio. Esistono due opzioni per la configurazione di mTLS, come spiegato di seguito.
Opzione 1: coppia chiave/certificato e file CA
Fornisci un certificato dell'autorità di certificazione (CA) con i file della chiave e del certificato SSL nella proprietà virtualhosts
del file delle sostituzioni:
virtualhosts:
- name: $ENVIRONMENT_GROUP_NAME
tlsMode: MUTUAL
caCertPath: "$CA_FILE"
sslCertPath: "$CERT_FILE"
sslKeyPath: "$KEY_FILE"
dove $ENVIRONMENT_GROUP_NAME è il nome di un gruppo di ambienti con gli alias host corrispondenti, $CA_FILE è un certificato autorizzato e $CERT_FILE e $KEY_FILE sono i file della chiave e del certificato TLS. Vedi Creare certificati TLS.
Opzione 2: Kubernetes Secrets
Crea due secret Kubernetes nello spazio dei nomiistio-system
. Il primo secret è per la CA e il secondo per la coppia chiave/certificato SSL.
Aggiungili al file delle sostituzioni.
- Crea due secret Kubernetes nello spazio dei nomi
istio-system
. Il primo secret è per la CA e il secondo per la coppia chiave/certificato SSL:kubectl create -n istio-system secret generic $SECRET_NAME \ --from-file=key=$KEY_FILE \ --from-file=cert=$CERT_FILE
- Crea un secret per la CA:
kubectl create -n istio-system secret generic $SECRET_NAME-cacert \ --from-file=cacert=$CA_FILE
- Configura la proprietà
virtualhosts
nel file delle sostituzioni:virtualhosts: - name: $ENVIRONMENT_GROUP_NAME tlsMode: MUTUAL # Note: Be sure to specify MUTUAL sslSecret: $SECRET_NAME