Como configurar o TLS e o mTLS no gateway de entrada

Este tópico explica como ativar o TLS unidirecional e o 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.

  1. Crie o secret no namespace apigee:
    kubectl create -n APIGEE_NAMESPACE secret generic $SECRET_NAME  \
      --from-file=key=$KEY_FILE \
      --from-file=cert=$CERT_FILE
  2. 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 os dados de certificado TLS que contêm os certificados da autoridade certificadora:

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 especifica os dados do certificado TLS (arquivo de pacote de AC) que contêm certificados de autoridade certificadora, e $CERT_FILE e $KEY_FILE são arquivos de certificado e chave 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.

  1. Crie dois secrets do Kubernetes no namespace apigee:
    kubectl create -n APIGEE_NAMESPACE secret generic $SECRET_NAME  \
      --from-file=key=$KEY_FILE \
      --from-file=cert=$CERT_FILE
  2. Crie um secret para a CA:
    kubectl create -n APIGEE_NAMESPACE secret generic $SECRET_NAME-cacert  \
      --from-file=cacert=$CA_FILE
  3. 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