Personalizando Armazenamentos Confiáveis para Verificação de Certificado TLS

Descubra como adicionar CAs (Certificate Authorities) e pacotes de CA a armazenamentos confiáveis personalizados com o API Gateway.

Os gateways de API criados com o serviço API Gateway verificam os certificados TLS apresentados a eles usando um armazenamento confiável. O armazenamento confiável pode conter certificados raiz de Autoridade de Certificação (CA) e pacotes de CA de certificados raiz e intermediários. Um pacote de CAs padrão é adicionado ao armazenamento confiável de cada gateway de API, contendo certificados de CAs públicas conhecidas. O pacote de CAs padrão permite que o gateway de API verifique certificados TLS apresentados por serviços de back-end.

Além do pacote de CAs padrão, você pode optar por adicionar os certificados raiz de outras CAs e outros pacotes de CAs ao armazenamento confiável de um gateway de API. Esses bundles adicionais de CAs e CA são chamados de CAs personalizadas e bundles de CA personalizados. Para adicionar uma CA personalizada ou um pacote de CAs ao armazenamento confiável de um gateway de API, primeiro crie um recurso de CA ou um recurso de pacote de CAs no serviço Certificates. Depois de criar o recurso no serviço Certificates, você poderá adicioná-lo ao armazenamento confiável do gateway de API. A adição de CAs e bundles de CA personalizados permite personalizar o armazenamento confiável para atender aos seus requisitos.

Tendo adicionado CAs e pacotes de CAs personalizados ao armazenamento confiável, as conexões TLS com o gateway de API (incluindo back-ends HTTPS e do cache de resposta) são verificadas usando o pacote de CAs padrão e os pacotes de CAs e CAs personalizados. Além disso, se você tiver especificado suporte mTLS para uma implantação de API, o gateway de API usará CAs personalizadas e pacotes de CA personalizados para verificar os certificados do cliente de API. Observe que o gateway de API não usa o bundle de CAs padrão para verificar certificados de cliente de API durante um handshake mTLS. Portanto, se quiser que um gateway de API suporte mTLS, adicione CAs e bundles de CA personalizados ao armazenamento confiável do gateway de API

Para alguns clientes, é obrigatório, por motivos de segurança, usar lojas de confiança personalizadas que contenham apenas CAs privadas e nenhuma CAs pública. Para outros clientes, o uso de lojas de confiança personalizadas provavelmente será impulsionado por requisitos comerciais.

Adicionando CAs Personalizadas e Pacotes de CAs ao Armazenamento Confiável de um Gateway de API

Para personalizar o armazenamento confiável de um gateway de API adicionando uma Autoridade de Certificação (CA) ou um pacote de CAs personalizado, primeiro crie um recurso de Autoridade de Certificação (CA) ou um recurso de pacote de CAs no serviço Certificates e adicione-o ao armazenamento confiável do gateway de API.

Etapa 1: Criar um Recurso de CA e/ou um Recurso de Pacote de CA no Serviço Certificates

Siga as instruções na documentação do serviço Certificates para criar um recurso de Autoridade de Certificação (CA) e/ou um recurso de pacote de CAs

Etapa 2: Adicionar o Recurso de CA ou o recurso de Pacote de CA ao Armazenamento Confiável de um Gateway de API

Para adicionar um recurso da Autoridade de Certificação (CA) ou um recurso do pacote de CAs ao armazenamento confiável de um gateway de API ao criar ou atualizar o gateway de API:

  1. Siga as instruções em Criando um Gateway de API ou Atualizando um Gateway de API para criar ou atualizar um gateway de API usando a Console ou a CLI.
  2. Especifique o recurso de CA e/ou o recurso de pacote de CAs do serviço Certificates a ser adicionado ao armazenamento confiável do gateway de API, conforme descrito nas seguintes instruções:

    • Se estiver usando a Console: Na seção Opções Avançadas da caixa de diálogo Criar Gateway ou Editar Gateway, selecione Adicionar Autoridades de Certificação e selecione um ou mais recursos de CA ou de pacote de CA para adicionar ao armazenamento confiável do gateway de API como CAs personalizadas e pacotes de CA personalizados (além do pacote de CA padrão).
    • Se estiver usando a CLI: Defina o argumento --ca-bundles file:///<filename> com o nome de um arquivo que contém detalhes de um ou mais recursos de CA ou recursos de bundle de CAs para adicionar ao armazenamento confiável do gateway de API como CAs personalizadas e pacotes de CAs personalizados (além do pacote de CAs padrão). Especifique os detalhes em JSON válido, no seguinte formato:
      [
        {
          "type": "CA_BUNDLE",
          "caBundleId": "ocid1.cabundle..."
        },
        {
          "type": "CERTIFICATE_AUTHORITY",
          "certificateAuthorityId": "ocid1.cabundle..."
        }
      ]

    O serviço API Gateway cria ou atualiza o gateway de API com um armazenamento confiável contendo a CA personalizada e/ou o bundle de CAs especificado, além do bundle de CAs padrão.

Removendo CAs Personalizadas e Pacotes de CAs do Armazenamento Confiável de um Gateway de API

Tendo adicionado uma Autoridade de Certificação (CA) ou um bundle de CAs personalizado ao armazenamento confiável de um gateway de API, você poderá decidir que o bundle de CAs ou CAs não é mais necessário.

Você pode remover algumas ou todos os pacotes de CAs e CA personalizados do armazenamento confiável de um gateway de API, desde que não haja APIs ativadas para mTLS implantadas no gateway de API. Se houver uma ou mais APIs ativadas para mTLS implantadas no gateway de API, sempre deverá haver pelo menos um pacote de CA ou CA personalizado no armazenamento confiável do gateway de API.

Usando a Console

Para remover uma CA personalizada ou um bundle de CAs do armazenamento confiável de um gateway de API usando a Console:

  1. Na página da lista Gateways, selecione o gateway de API do qual você deseja remover a CA personalizada ou o bundle de CAs. Se precisar de ajuda para localizar a página da lista ou o gateway de API, consulte Listando Gateways de API.
  2. Na página Detalhes do Gateway, selecione Autoridades de Certificação na lista Recursos para ver os pacotes de CA e CA personalizados no armazenamento confiável do gateway de API.
  3. Selecione o menu Ações (três pontos) ao lado do pacote de CAs ou CA personalizado que você deseja remover e selecione Remover.

    Observe que você não poderá remover todas as CAs personalizadas e pacotes de CA do armazenamento confiável de um gateway de API se houver uma ou mais APIs ativadas para mTLS implantadas no gateway de API.

  4. Confirme se você deseja remover o bundle de CAs ou CAs personalizado do armazenamento confiável do gateway de API.

Usando a CLI

Para remover um bundle de CAs ou CAs personalizado do armazenamento confiável de um gateway de API usando a CLI:

  1. Configure seu ambiente de cliente para usar a CLI ( Configurando Seu Ambiente de Cliente para usar a CLI para o Desenvolvimento de Gateway de API).
  2. Para remover um bundle de CAs ou CAs personalizado do armazenamento confiável de um gateway de API:

    1. Abra um prompt de comando e execute oci api-gateway gateway update para remover o bundle de CAs ou CAs personalizado do armazenamento confiável do gateway de API:

      oci api-gateway gateway update --gateway-id <gateway-ocid> --ca-bundles file:///<filename>

      em que <filename> é o nome de um arquivo que contém detalhes apenas dessas CAs personalizadas e pacotes de CAs personalizados a serem retidos no armazenamento confiável do gateway de API (além do pacote de CAs padrão). Quaisquer CAs ou bundles de CA não contidos no arquivo são removidos do armazenamento confiável.

      Por exemplo:

      oci api-gateway gateway update --gateway-id ocid1.apigateway.oc1..aaaaaaaab______hga --ca-bundles file:///bundles-to-keep.json

      Observe que você não poderá remover todas as CAs personalizadas e pacotes de CA do armazenamento confiável de um gateway de API se houver uma ou mais APIs ativadas para mTLS implantadas no gateway de API.

      A resposta ao comando inclui:

      • O estado do ciclo de vida (por exemplo, DELETED, FAILED).
      • O id da solicitação de serviço para remover as CAs ou os pacotes de CAs personalizados (os detalhes das solicitações de serviço estão disponíveis por sete dias após a conclusão, o cancelamento ou a falha).

      Se quiser que o comando aguarde o retorno de controle até que as CAs ou os bundles de CA personalizados tenham sido removidos (ou a solicitação tenha falhado), inclua um ou ambos os seguintes parâmetros:

      • --wait-for-state DELETED
      • --wait-for-state FAILED

      Por exemplo:

      oci api-gateway gateway update --gateway-id ocid1.apigateway.oc1..aaaaaaaab______hga --ca-bundles file:///bundles-to-keep.json --wait-for-state DELETED
    2. (Opcional) Para ver o status da solicitação de serviço que está removendo o bundle de CAs ou CAs personalizado, digite:

      oci api-gateway work-request get --work-request-id <work-request-ocid>
    3. (Opcional) Para exibir os logs da solicitação de serviço que está removendo o bundle de CAs ou CAs personalizado, digite:

      oci api-gateway work-request-log list --work-request-id <work-request-ocid>
    4. (Opcional) Se a solicitação de serviço que está removendo a CA ou o bundle de CAs personalizado falhar e você quiser revisar os logs de erro, digite:

      oci api-gateway work-request-error --work-request-id <work-request-ocid>
    5. (Opcional) Para verificar se o bundle de CAs ou CAs personalizado foi removido do armazenamento confiável do gateway de API, digite o seguinte comando e confirme se o bundle de CAs ou CAs personalizado não é mais mostrado:

      oci api-gateway gateway get --gateway-id <gateway-ocid>

Para obter mais informações sobre o uso da CLI, consulte Interface de Linha de Comando (CLI). Para obter uma lista completa de flags e opções disponíveis para comandos da CLI, consulte a Ajuda da CLI.

Usando a API

Para obter informações sobre como usar a API e assinar solicitações, consulte a documentação da API REST e Credenciais de Segurança. Para obter informações sobre SDKs, consulte SDKs e a CLI.

Use a operação UpdateGateway para especificar apenas as CAs personalizadas e os pacotes de CAs personalizados a serem retidos no armazenamento confiável do gateway de API (além do pacote de CAs padrão). Quaisquer CAs ou bundles de CA que você não especificar serão removidos do armazenamento confiável. Observe que você não poderá remover todas as CAs personalizadas e pacotes de CA do armazenamento confiável de um gateway de API se houver uma ou mais APIs ativadas para mTLS implantadas no gateway de API.