Pull de origem autenticada

O Authenticated Origin Pull é um recurso de segurança que ajuda a garantir a comunicação segura entre o IBM Cloud® Internet Services e seu servidor de origem. Ele usa TLS mútuo ( mTLS ) para autenticar o servidor CIS e o servidor de origem, o que permite que somente solicitações do servidor IBM Cloud® Internet Services confiável acessem seu servidor. Essa configuração protege seu servidor de origem contra acesso não autorizado e aumenta a segurança geral de seus aplicativos da Web.

Os servidores da Web de origem validam que uma solicitação da Web veio de IBM Cloud® Internet Services por meio de pulls de origem autenticados. CIS usa a autenticação de certificado de cliente TLS, um recurso suportado pela maioria dos servidores da Web para apresentar um certificado CIS quando estabelece uma conexão entre CIS e o servidor da Web de origem. Ao validar este certificado no servidor da web de origem, o acesso é limitado às conexões do CIS.

Um pull de origem autenticada é importante quando você aproveita o Web Application Firewall (WAF). Depois que seu servidor da Web de origem impõe pulls de origem autenticados, todas as solicitações HTTPS fora de CIS são impedidas de chegar à sua origem.

Você pode configurar o pull de origem autenticada usando uma das seguintes opções:

  • Extração de origem autenticada em nível de zona usando certificados CIS
  • Extração de origem autenticada em nível de zona usando certificados de clientes
  • Extração de origem autenticada por nome de host usando certificados de clientes

Os certificados de cliente não são excluídos do CIS após a expiração, a menos que uma solicitação de exclusão ou substituição seja enviada à API do CIS. No entanto, as solicitações serão descartadas em sua origem se ela aceitar apenas um certificado de cliente válido.

O Pull de origem autenticada não funciona no modo SSL desativado (não seguro) ou de Cliente para borda.

Extração de origem autenticada no nível da zona com certificados CIS

Essa opção permite o acesso seguro ao conteúdo do servidor de origem por meio da autenticação de solicitações com certificados fornecidos pelo CIS no nível da zona.

O CIS usa o seguinte CA para assinar certificados para o serviço de pull de origem autenticada:

Baixe o certificado e armazene o arquivo no servidor da web de origem, por exemplo, em /path/to/origin-pull-ca.pem.

Para habilitar a origem autenticada, puxe globalmente em uma zona:

  1. Instale o certificado no servidor da Web de origem para autenticar todas as conexões.
  2. Configure o site CIS com flexibilidade de ponta a ponta.
  3. Configure o servidor da Web de origem para aceitar certificados de clientes.
  4. Habilite a extração de origem autenticada usando a CLI do CIS.

Extração de origem autenticada em nível de zona com certificados personalizados

Essa opção permite o acesso seguro ao conteúdo do servidor de origem usando certificados carregados pelo cliente para autenticação no nível da zona.

  1. Se você usar uma chave ECC gerada por OpenSSL,, primeiro remova -----BEGIN EC PARAMETERS-----...-----END EC PARAMETERS----- do arquivo de certificado.

  2. Certifique-se de que o certificado e a chave estejam no seguinte formato antes de fazer o upload para CIS:

    $ cat app_example_com.pem
    -----BEGIN CERTIFICATE-----
    MIIFJDCCBAygAwIBAgIQD0ifmj/Yi5Nz2gdUySbfzANBgkqhkiG9w0BAQsFADBN
    MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E
    ...
    SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O
    OeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7
    -----END CERTIFICATE-----
    
  3. Substitua os términos da linha pela sequência \n:

    MYCERT="$(cat app_example_com.pem|perl -pe 's/\r?\n/\\n/'|sed -e 's/..$//')" $ MYKEY="$(cat app_example_com.key|perl -pe 's/\r?\n/\\n/'| sed -e's/..$//')"
    
    echo $MYCERT -----BEGIN CERTIFICATE-----\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/ 2gdUySbfzANBgkqhkiG9w0BAQsFADBN\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/ 3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\n-----END CERTIFICATE-----\n
    
  4. Crie a carga útil:

    $ request_body=$(< <(cat <<EOF { "certificate": "$MYCERT", "private_key": "$MYKEY" } } EOF ))

  5. Faça upload do certificado do cliente e da chave privada na CLI do site CIS.

  6. Habilite a extração de origem autenticada na CLI do site CIS.

Extração de origem autenticada por nome de host usando certificados de clientes

Essa opção permite o acesso seguro ao conteúdo a partir do servidor de origem, autenticando solicitações com certificados de clientes por nome de host.

Quando você ativa o pull de origem autenticado por nome de host, todo o tráfego proxy para o nome de host especificado é autenticado no servidor da Web de origem. É possível usar certificados de cliente de sua própria infraestrutura de chave pública para autenticar as conexões do CIS.

Para fazer o upload de um certificado de cliente no CIS:

  1. Se você usar uma chave ECC gerada por OpenSSL,, primeiro remova -----BEGIN EC PARAMETERS-----...-----END EC PARAMETERS----- do arquivo de certificado.

  2. Certifique-se de que o certificado esteja no seguinte formato antes de carregá-lo em CIS.

    $ cat app_example_com.pem
    -----BEGIN CERTIFICATE-----
    MIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN
    MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E
    ...
    SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O
    OeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7
    -----END CERTIFICATE-----
    
  3. Substitua os términos da linha pela sequência \n:

    MYCERT="$(cat app_example_com.pem|perl -pe 's/\r?\n/\\n/'|sed -e 's/..$//')" $ MYKEY="$(cat app_example_com.key|perl -pe 's/\r?\n/\\n/'|sed -e's/..$//')"
    
    echo $MYCERT -----BEGIN CERTIFICATE-----\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\n-----END CERTIFICATE-----\n
    
  4. Crie a carga útil:

    $ request_body=$(< <(cat <<EOF { "certificate": "$MYCERT", "private_key": "$MYKEY" } } EOF ))

  5. Faça upload do certificado do cliente e da chave privada na CLI do site CIS.

  6. Habilite a extração de origem autenticada no nome de host especificado por meio da CLI do site CIS. Vincular o certificado do cliente ao nome de host específico.

Substituindo um certificado de cliente sem tempo de inatividade

Para o nome do host:

  1. Faça o upload do novo certificado.
  2. Vincule o novo ID do certificado, o nome do host e os valores ativados.

Para global:

  1. Faça o upload do novo certificado.
  2. Verifique se o novo certificado está no estado Ativo.
  3. Depois que o certificado estiver ativo, exclua o certificado antigo.

Aplicar simultaneamente um certificado de cliente diferente (a nível de zona e nome de host)

  1. Faça o upload de um certificado seguindo as etapas da seção Puxar origem autenticada no nível da zona.
  2. Faça upload de vários certificados seguindo as etapas da seção Extração de origem autenticada por nome de host usando certificados de clientes.

Instalar no Apache e no NGINX

Use as seguintes instruções para configurar pulls de origem autenticada TLS para servidores da web de origem NGINX ou Apache.

Configurar o Apache

Use o flexível de ponta a ponta e atualize a configuração de SSL do servidor da Web de origem usando as etapas a seguir.

  1. Faça o download do certificado de origem autenticado (origin-pull-ca.pem).

  2. Armazene o certificado em um arquivo no seu servidor da Web de origem, por exemplo, em /path/to/origin-pull-ca.pem.

  3. Adicione as seguintes linhas à configuração SSL para o seu servidor da web de origem:

    SSLVerifyClient require
    SSLVerifyDepth 1
    SSLCACertificateFile /path/to/origin-pull-ca.pem
    

Configurando o NGINX

Use o flexível de ponta a ponta e atualize a configuração de SSL do servidor da Web de origem usando as etapas a seguir.

  1. Faça o download do certificado de origem autenticado (origin-pull-ca.pem).

  2. Armazene o certificado em um arquivo no seu servidor da Web de origem, por exemplo, em /etc/nginx/certs/cloudflare.crt.

  3. Adicione as seguintes linhas à configuração SSL para o seu servidor da web de origem:

    ssl_client_certificate /etc/nginx/certs/cloudflare.crt;
    ssl_verify_client on;