Questo argomento spiega come abilitare TLS e mTLS unidirezionali sul traffico Istio in entrata.
Configurazione di TLS unidirezionale
Utilizza TLS unidirezionale per proteggere gli endpoint del proxy API sul traffico Istio in entrata. Per abilitare il protocollo TLS unidirezionale, devi configurare il traffico in entrata con coppie di certificati/chiavi TLS o con un secret Kubernetes, come spiegato nelle opzioni seguenti.
Opzione 1: coppia chiave/certificata
Fornisci il certificato SSL e i file della chiave nella proprietà virtualhosts
nel file degli override:
virtualhosts: - name: $ENVIRONMENT_GROUP_NAME sslCertPath: "$CERT_FILE" sslKeyPath: "$KEY_FILE"
Dove $ENVIRONMENT_GROUP_NAME è il nome di un gruppo di ambiente con alias host corrispondenti, mentre $CERT_FILE e $KEY_FILE sono file di certificati e chiave TLS. Vedi Creare certificati TLS.
Opzione 2: secret di Kubernetes
Crea un Secret Kubernetes nello spazio dei nomi istio-system
e aggiungi il nome del secret al file degli override:
- 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 degli override:virtualhosts: - name: $ENVIRONMENT_GROUP_NAME tlsMode: SIMPLE # Note: SIMPLE is the default, so it is optional. sslSecret: $SECRET_NAME
Configurazione di mTLS
Invece di TLS unidirezionale, puoi configurare mTLS sul traffico Istio in entrata. Esistono due opzioni per configurare mTLS, come spiegato di seguito.
Opzione 1: coppia chiave/certificata e file CA
Fornisci un certificato dell'autorità di certificazione (CA) con il certificato SSL e i file della chiave nella
proprietà virtualhosts
nel file degli override:
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 ambiente con alias host corrispondenti, $CA_FILE è un certificato autorizzato, mentre $CERT_FILE e $KEY_FILE sono file di certificati e chiavi TLS. Vedi Creare certificati TLS.
Opzione 2: secret di Kubernetes
Creare due secret Kubernetes nello spazio dei nomiistio-system
. Il primo secret è per l'autorità di certificazione e il secondo per la coppia certificato/chiave SSL.
e aggiungili al file degli override.
- Creare due secret Kubernetes
nello spazio dei nomi
istio-system
. Il primo secret è per la CA, il secondo per la coppia certificato/chiave 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 degli override:virtualhosts: - name: $ENVIRONMENT_GROUP_NAME tlsMode: MUTUAL # Note: Be sure to specify MUTUAL sslSecret: $SECRET_NAME