Neste tópico, você verá como habilitar o TLS só de ida e mTLS na entrada do Istio.
Como configurar o TLS unidirecional
Use o TLS unidirecional para proteger os endpoints de proxy da API na entrada do Istio. Para ativar o TLS unidirecional, configure a entrada com pares de certificado/chave TLS ou com um secret do Kubernetes, conforme explicado nas opções a seguir.
Opção 1: par de chave/certificado
Forneça arquivos de certificado e chave SSL na propriedade virtualhosts
no seu arquivo de modificações:
virtualhosts:
- name: $ENVIRONMENT_GROUP_NAME
sslCertPath: "$CERT_FILE"
sslKeyPath: "$KEY_FILE"
Em que $ENVIRONMENT_GROUP_NAME é o nome de um grupo de ambientes com aliases de host correspondentes, e $CERT_FILE e $KEY_FILE são arquivos de chave e certificado TLS. Consulte Criar certificados TLS.
Opção 2: secret do Kubernetes
Crie um secret do Kubernetes no namespace istio-system
e adicione o nome do secret ao arquivo de modificações:
- Criar o secret:
kubectl create -n istio-system secret generic $SECRET_NAME \ --from-file=key=$KEY_FILE \ --from-file=cert=$CERT_FILE
- Configure a propriedade
virtualhosts
no arquivo de modificações:virtualhosts: - name: $ENVIRONMENT_GROUP_NAME tlsMode: SIMPLE # Note: SIMPLE is the default, so it is optional. sslSecret: $SECRET_NAME
Como configurar o mTLS
Em vez do TLS unidirecional, é possível configurar o mTLS na entrada do Istio. Há duas opções para configurar o mTLS, conforme explicado abaixo.
Opção 1: par de chave/certificado e arquivo CA
Forneça um certificado da autoridade de certificação (CA, na sigla em inglês) com o certificado SSL e os arquivos de chave na propriedade virtualhosts
no arquivo de modificação:
virtualhosts:
- name: $ENVIRONMENT_GROUP_NAME
tlsMode: MUTUAL
caCertPath: "$CA_FILE"
sslCertPath: "$CERT_FILE"
sslKeyPath: "$KEY_FILE"
Em que $ENVIRONMENT_GROUP_NAME é o nome de um grupo de ambiente com aliases de host correspondentes, $CA_FILE é um certificado autorizado e $CERT_FILE e $KEY_FILE são arquivos de chave e certificado TLS. Consulte Criar certificados TLS.
Opção 2: secrets do Kubernetes
Crie dois secrets do Kubernetes no namespaceistio-system
. O primeiro é para o par de certificado/chave SSL e o segundo é para a CA.
Em seguida, adicione-os ao arquivo de substituição.
- Crie dois secrets do Kubernetes no namespace
istio-system
:kubectl create -n istio-system secret generic $SECRET_NAME \ --from-file=key=$KEY_FILE \ --from-file=cert=$CERT_FILE
- Crie um secret para a CA:
kubectl create -n istio-system secret generic $SECRET_NAME-cacert \ --from-file=cacert=$CA_FILE
- Configure a propriedade
virtualhosts
no arquivo de modificações:virtualhosts: - name: $ENVIRONMENT_GROUP_NAME tlsMode: MUTUAL # Note: Be sure to specify MUTUAL sslSecret: $SECRET_NAME