Este tópico explica como ativar o TLS unidirecional e mTLS no gateway de entrada .
Como configurar o TLS unidirecional
Use o TLS unidirecional para proteger os endpoints de proxy de API no gateway de entrada. 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 uma chave secreta do Kubernetes e adicione-a ao arquivo de substituições.
- Crie o Secret em um dos dois namespaces a seguir:
- namespace
apigee
, se você estiver usando o gateway de entrada da Apigee. - namespace
istio-system
se você estiver usando o Anthos Service Mesh instalado pelo cliente.
Gateway de entrada da Apigee
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
- namespace
- 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 de TLS de mão única, você pode configurar mTLS no gateway de entrada. 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
Criar dois secrets do Kubernetes 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 em um dos dois namespaces a seguir:
- namespace
apigee
, se você estiver usando o gateway de entrada da Apigee. - namespace
istio-system
se você estiver usando o Anthos Service Mesh instalado pelo cliente.
Gateway de entrada da Apigee
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
- namespace
- Crie um secret para a CA:
Gateway de entrada da Apigee
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
- 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