CNAME y Target

Instrucciones para trabajar con Adobe ClientCare va a implementar la compatibilidad con CNAME (nombre canónico) en Adobe Target. Utilice CNAME para gestionar problemas de bloqueo de anuncios o directivas de cookies relacionadas con ITP (prevención inteligente del seguimiento). Con CNAME, las llamadas se realizan a un dominio propiedad del cliente en lugar de a un dominio propiedad de Adobe.

Solicitar compatibilidad con CNAME en Target

  1. Determine la lista de nombres de host que necesita para su certificado SSL (consulte las preguntas frecuentes a continuación).

  2. Para cada nombre de host, cree un registro CNAME en su DNS que apunte a su Target hostname clientcode.tt.omtrdc.net.

    Por ejemplo, si el código de cliente es "cnamecustomer" y el nombre de host propuesto es target.example.com, su registro CNAME DNS tiene un aspecto similar a:

    target.example.com.  IN  CNAME  cnamecustomer.tt.omtrdc.net.
    
    IMPORTANTE

    AdobeLa autoridad de certificación de , DigiCert, no puede emitir un certificado hasta que se complete este paso. Por lo tanto, Adobe no puede realizar la solicitud de una implementación CNAME hasta que se complete este paso.

  3. Rellene este formulario e inclúyalo cuando abra un Adobe ticket de ClientCare solicitando asistencia de CNAME:

    • Adobe Target client code:
    • Nombres de host de certificados SSL (ejemplo: target.example.com target.example.org):
    • Comprador de certificados SSL (Adobe es muy recomendable, consulte preguntas frecuentes): Adobe/cliente
    • Si el cliente compra el certificado, también conocido como "Traer su propio certificado" (BYOC), rellene estos detalles adicionales:
      • Organización de certificados (ejemplo: Empresa de Ejemplo S.A.):
      • Unidad organizativa del certificado (opcional, ejemplo: Marketing):
      • País del certificado (ejemplo: EE. UU.):
      • Estado o región del certificado (ejemplo: California):
      • Ciudad del certificado (ejemplo: San José):
  4. If Adobe compra el certificado, Adobe funciona con DigiCert para adquirir e implementar el certificado en Adobede los servidores de producción de .

    Si el cliente compra el certificado (BYOC), Adobe ClientCare le envía la solicitud de firma de certificado (CSR). Utilice la CSR al adquirir el certificado a través de la autoridad de certificación que elija. Una vez emitido el certificado, envíe una copia del certificado y de los certificados intermedios a Adobe ClientCare para la implementación.

    Adobe ClientCare le notifica cuando la implementación está lista.

  5. Actualice el serverDomain (documentación) al nuevo nombre de host CNAME y establezca overrideMboxEdgeServer a false (documentación) en la configuración de at.js.

Preguntas frecuentes

La siguiente información responde a las preguntas más frecuentes sobre la solicitud e implementación de la compatibilidad con CNAME en Target:

¿Puedo proporcionar mi propio certificado (Traer su propio certificado o BYOC)?

Puede proporcionar su propio certificado. Sin embargo, Adobe no recomienda esta práctica. La administración del ciclo de vida del certificado SSL es más fácil para ambos Adobe y usted si Adobe compra y controla el certificado. Los certificados SSL deben renovarse cada año. Por lo tanto, Adobe Atención al cliente debe ponerse en contacto con usted cada año para obtener un nuevo certificado de forma oportuna. Algunos clientes pueden tener dificultades para producir un certificado renovado de forma oportuna. Su Target la implementación se ve amenazada cuando el certificado caduca porque los navegadores rechazan las conexiones.

IMPORTANTE

Si solicita una Target traer su propio certificado de implementación de CNAME, usted es responsable de proporcionar certificados renovados a Adobe Atención al cliente cada año. Permitiendo que el certificado CNAME caduque antes de que Adobe puede implementar un certificado renovado en un corte para el Target implementación.

¿Cuánto tiempo falta para que caduque mi nuevo certificado SSL?

Todo Adobe-los certificados adquiridos son válidos durante un año. Consulte Artículo de DigiCert sobre certificados de 1 año para obtener más información.

¿Qué nombres de host debo elegir? ¿Cuántos nombres de host debo elegir por dominio?

Target Las implementaciones CNAME requieren solo un nombre de host por dominio en el certificado SSL y en el DNS del cliente. Adobe recomienda un nombre de host por dominio. Algunos clientes requieren más nombres de host por dominio para sus propios fines (prueba en el entorno de ensayo, por ejemplo), que se admite.

La mayoría de los clientes eligen un nombre de host como target.example.com. Adobe recomienda seguir esta práctica, pero la elección es en última instancia tuya. No solicite un nombre de host de un registro DNS existente. Al hacerlo, se genera un conflicto y se retrasa el tiempo de resolución de Target Solicitud CNAME.

Ya tengo una implementación CNAME para Adobe Analytics, ¿puedo usar el mismo certificado o nombre de host?

No, Target requiere un nombre de host y un certificado independientes.

¿Es mi implementación actual de Target ¿se ve afectado por ITP 2.x?

La versión 2.3 de Apple Intelligent Tracking Prevention (ITP) introdujo su función de mitigación de encubrimiento CNAME, que es capaz de detectar Adobe Target Implementaciones CNAME y reduce la caducidad de la cookie a siete días. Actualmente Target no tiene una solución para la mitigación de cierre CNAME de ITP. Para obtener más información sobre ITP, consulte Prevención inteligente del seguimiento de Apple (ITP) 2.x.

¿Qué tipo de interrupciones del servicio puedo esperar cuando se implementa mi implementación CNAME?

No hay interrupciones en el servicio cuando se implementa el certificado (incluidas las renovaciones de certificados).

Sin embargo, después de cambiar el nombre de host en su Target código de implementación (serverDomain en at.js) al nuevo nombre de host CNAME (target.example.com), los navegadores web tratan a los visitantes que regresan como nuevos visitantes. Se pierden los datos de perfil de los visitantes que regresan porque no se puede acceder a la cookie anterior bajo el nombre de host antiguo (clientcode.tt.omtrdc.net). La cookie anterior es inaccesible debido a los modelos de seguridad del explorador. Esta interrupción solo ocurre en el corte inicial del nuevo CNAME. Las renovaciones de certificados no tienen el mismo efecto porque el nombre de host no cambia.

¿Qué tipo de clave y algoritmo de firma de certificado se usan para mi implementación CNAME?

Todos los certificados son RSA SHA-256 y las claves son RSA de 2048 bits, de forma predeterminada. Actualmente no se admiten los tamaños de claves superiores a 2048 bits.

¿Cómo puedo validar que mi implementación CNAME esté lista para el tráfico?

Utilice el siguiente conjunto de comandos (en el terminal de línea de comandos de macOS o Linux, utilizando bash y curl >=7.49):

  1. Copie y pegue esta función bash en su terminal o pegue la función en su archivo de script de inicio bash (normalmente ~/.bash_profile o ~/.bashrc) para que la función esté disponible en las sesiones de terminal:

    function adobeTargetCnameValidation {
      local hostname="$1"
      if [ -z "$hostname" ]; then
        echo "ERROR: no hostname specified"
        return 1
      fi
    
      local service="Adobe Target CNAME implementation"
      local edges="31 32 34 35 36 37 38"
      local edgeDomain="tt.omtrdc.net"
      local edgeFormat="mboxedge%d%s.$edgeDomain"
      local shardFormat="-alb%02d"
      local shards=5
      local shardsFoundCount=0
      local shardsFound
      local shardsFoundOutput
      local curlRegex="subject:.*CN=|expire date:|issuer:"
      local curlValidation="SSL certificate verify ok"
      local curlResponseValidation='"OK"'
      local curlEndpoint="/uptime?mboxClient=uptime3"
      local url="https://$hostname$curlEndpoint"
      local sslLabsUrl="https://ssllabs.com/ssltest/analyze.html?hideResults=on&latest&d=$hostname"
      local success="✅"
      local failure="🚫"
      local info="🔎"
      local rule="="
      local horizontalRule="$(seq ${COLUMNS:-30} | xargs printf "$rule%.0s")"
      local miniRule="$(seq 5 | xargs printf "$rule%.0s")"
      local curlVersion="$(curl --version | head -1 | cut -d' ' -f2 )"
      local curlVersionRequired=">=7.49"
      local edgeCount="$(wc -w <<< "$edges" | tr -d ' ')"
      local edge
      local shard
      local currEdgeShard
      local dnsOutput
      local cnameExists
      local endToEndTestSucceeded
      local curlResult
    
      for shard in $(seq $shards); do
        if [ "$shardsFoundCount" -eq 0 ]; then
          for edge in $edges; do
            if [ "$shard" -eq 1 ]; then
              currEdgeShard="$(printf "$edgeFormat" "$edge" "")"
            else
              currEdgeShard="$(
                printf "$edgeFormat" "$edge" "$(
                  printf -- "$shardFormat" "$shard"
                )"
              )"
            fi
            curlResult="$(curl -vsm20 --connect-to "$hostname:443:$currEdgeShard:443" "$url" 2>&1)"
            if grep -q "$curlValidation" <<< "$curlResult"; then
              shardsFound+=" $currEdgeShard"
              if grep -q "$curlResponseValidation" <<< "$curlResult"; then
                shardsFoundCount=$((shardsFoundCount+1))
                shardsFoundOutput+="\n\n$miniRule $success $hostname [edge shard: $currEdgeShard] $miniRule\n"
              else
                shardsFoundOutput+="\n\n$miniRule $failure $hostname [edge shard: $currEdgeShard] $miniRule\n"
              fi
              shardsFoundOutput+="$(grep -E "$curlRegex" <<< "$curlResult" | sort)"
              if ! grep -q "$curlResponseValidation" <<< "$curlResult"; then
                shardsFoundOutput+="\nERROR: unexpected HTTP response from this shard using $url"
              fi
            fi
          done
        fi
      done
    
      echo
      echo "$horizontalRule"
      echo
      echo "$service validation for hostname $hostname:"
      dnsOutput="$(dig -t CNAME +short "$hostname" 2>&1)"
      if grep -qFi ".$edgeDomain" <<< "$dnsOutput"; then
        echo "$success $hostname passes DNS CNAME validation"
        cnameExists=true
      else
        echo -n "$failure $hostname FAILED DNS CNAME validation -- "
        if [ -n "$dnsOutput" ]; then
          echo -e "$dnsOutput is not in the subdomain $edgeDomain"
        else
          echo "required DNS CNAME record pointing to <target-client-code>.$edgeDomain not found"
        fi
      fi
    
      curlResult="$(curl -vsm20 "$url" 2>&1)"
      if grep -q "$curlValidation" <<< "$curlResult"; then
        if grep -q "$curlResponseValidation" <<< "$curlResult"; then
          echo -en "$success $hostname passes TLS and HTTP response validation"
          if [ -n "$cnameExists" ]; then
            echo
          else
            echo " -- the DNS CNAME is not pointing to the correct subdomain for ${service}s with Adobe-managed certificates" \
              "(bring-your-own-certificate implementations don't have this requirement), but this test passes as configured"
          fi
          endToEndTestSucceeded=true
        else
          echo -n "$failure $hostname FAILED HTTP response validation --" \
            "unexpected response from $url -- "
          if [ -n "$cnameExists" ]; then
            echo "DNS is NOT pointing to the correct shard, notify Adobe Client Care"
          else
            echo "the required DNS CNAME record is missing, see above"
          fi
        fi
      else
    
        echo -n "$failure $hostname FAILED TLS validation -- "
        if [ -n "$cnameExists" ]; then
          echo "DNS is likely NOT pointing to the correct shard or there's a validation issue with the certificate or" \
            "protocols, see curl output below and optionally SSL Labs ($sslLabsUrl):"
          echo ""
          echo "$horizontalRule"
          echo "$curlResult" | sed 's/^/    /g'
          echo "$horizontalRule"
          echo ""
        else
          echo "the required DNS CNAME record is missing, see above"
        fi
      fi
    
      if [ "$shardsFoundCount" -ge "$edgeCount" ]; then
        echo -n "$success $hostname passes shard validation for the following $shardsFoundCount edge shards:"
        echo -e "$shardsFoundOutput"
        echo
    
        if [ -n "$cnameExists" ] && [ -n "$endToEndTestSucceeded" ]; then
          echo "$horizontalRule"
          echo ""
          echo "  For additional TLS/SSL validation, including detailed browser/client support,"
          echo "  see SSL Labs (click the first IP address if prompted):"
          echo ""
          echo "    $info  $sslLabsUrl"
          echo ""
          echo "  To check DNS propagation around the world, see whatsmydns.net:"
          echo ""
          echo "    $info  DNS A records:     https://whatsmydns.net/#A/$hostname"
          echo "    $info  DNS CNAME record:  https://whatsmydns.net/#CNAME/$hostname"
        fi
      else
        echo -n "$failure $hostname FAILED shard validation -- shards found: $shardsFoundCount," \
          "expected: $edgeCount"
        if bc -l <<< "$(cut -d. -f1,2 <<< "$curlVersion") $curlVersionRequired" 2>/dev/null | grep -q 0; then
          echo -n " -- insufficient curl version installed: $curlVersion, but this script requires curl version" \
            "$curlVersionRequired because it uses the curl --connect-to flag to bypass DNS and directly test" \
            "each Adobe Target edge shards' SNI confirguation for $hostname"
        fi
        if [ -n "$shardsFoundOutput" ]; then
          echo -e ":\n$shardsFoundOutput"
        fi
        echo
      fi
      echo
      echo "$horizontalRule"
      echo
    }
    
  2. Pegar este comando (reemplazar target.example.com con su nombre de host):

    adobeTargetCnameValidation target.example.com
    

    Si la implementación está lista, verá los resultados como se muestra a continuación. La parte importante es que todas las líneas de estado de validación muestren en lugar de 🚫. Cada Target el elemento compartido CNAME perimetral debería mostrarse CN=target.example.com, que coincide con el nombre de host principal del certificado solicitado (los nombres de host SAN adicionales del certificado no se imprimen en esta salida).

    $ adobeTargetCnameValidation target.example.com
    
    ==========================================================
    
    Adobe Target CNAME implementation validation for hostname target.example.com:
    ✅ target.example.com passes DNS CNAME validation
    ✅ target.example.com passes TLS and HTTP response validation
    ✅ target.example.com passes shard validation for the following 7 edge shards:
    
    ===== ✅ target.example.com [edge shard: mboxedge31-alb02.tt.omtrdc.net] =====
    *  expire date: Jul 22 23:59:59 2022 GMT
    *  issuer: C=US; O=DigiCert Inc; CN=DigiCert TLS RSA SHA256 2020 CA1
    *  subject: C=US; ST=California; L=San Jose; O=Adobe Systems Incorporated; CN=target.example.com
    
    ===== ✅ target.example.com [edge shard: mboxedge32-alb02.tt.omtrdc.net] =====
    *  expire date: Jul 22 23:59:59 2022 GMT
    *  issuer: C=US; O=DigiCert Inc; CN=DigiCert TLS RSA SHA256 2020 CA1
    *  subject: C=US; ST=California; L=San Jose; O=Adobe Systems Incorporated; CN=target.example.com
    
    ===== ✅ target.example.com [edge shard: mboxedge34-alb02.tt.omtrdc.net] =====
    *  expire date: Jul 22 23:59:59 2022 GMT
    *  issuer: C=US; O=DigiCert Inc; CN=DigiCert TLS RSA SHA256 2020 CA1
    *  subject: C=US; ST=California; L=San Jose; O=Adobe Systems Incorporated; CN=target.example.com
    
    ===== ✅ target.example.com [edge shard: mboxedge35-alb02.tt.omtrdc.net] =====
    *  expire date: Jul 22 23:59:59 2022 GMT
    *  issuer: C=US; O=DigiCert Inc; CN=DigiCert TLS RSA SHA256 2020 CA1
    *  subject: C=US; ST=California; L=San Jose; O=Adobe Systems Incorporated; CN=target.example.com
    
    ===== ✅ target.example.com [edge shard: mboxedge36-alb02.tt.omtrdc.net] =====
    *  expire date: Jul 22 23:59:59 2022 GMT
    *  issuer: C=US; O=DigiCert Inc; CN=DigiCert TLS RSA SHA256 2020 CA1
    *  subject: C=US; ST=California; L=San Jose; O=Adobe Systems Incorporated; CN=target.example.com
    
    ===== ✅ target.example.com [edge shard: mboxedge37-alb02.tt.omtrdc.net] =====
    *  expire date: Jul 22 23:59:59 2022 GMT
    *  issuer: C=US; O=DigiCert Inc; CN=DigiCert TLS RSA SHA256 2020 CA1
    *  subject: C=US; ST=California; L=San Jose; O=Adobe Systems Incorporated; CN=target.example.com
    
    ===== ✅ target.example.com [edge shard: mboxedge38-alb02.tt.omtrdc.net] =====
    *  expire date: Jul 22 23:59:59 2022 GMT
    *  issuer: C=US; O=DigiCert Inc; CN=DigiCert TLS RSA SHA256 2020 CA1
    *  subject: C=US; ST=California; L=San Jose; O=Adobe Systems Incorporated; CN=target.example.com
    
    ==========================================================
    
      For additional TLS/SSL validation, including detailed browser/client support,
      see SSL Labs (click the first IP address if prompted):
    
        🔎  https://ssllabs.com/ssltest/analyze.html?hideResults=on&latest&d=target.example.com
    
      To check DNS propagation around the world, see whatsmydns.net:
    
        🔎  DNS A records:     https://whatsmydns.net/#A/target.example.com
        🔎  DNS CNAME record:  https://whatsmydns.net/#CNAME/target.example.com
    
    ==========================================================
    
    NOTA

    Si este comando de validación falla en la validación de DNS pero ya ha realizado los cambios de DNS necesarios, es posible que tenga que esperar a que las actualizaciones de DNS se propaguen por completo. Los registros DNS tienen asociado un TTL (tiempo de vida) que dicta el tiempo de caducidad de la caché para las respuestas DNS de esos registros. Como resultado, es posible que tenga que esperar al menos mientras los TTL sean. Puede usar la variable dig target.example.com comando o G Suite Toolbox para buscar los TTL específicos. Para comprobar la propagación de DNS en todo el mundo, consulte whatsmydns.net.

¿Cómo utilizo un vínculo de no participación con CNAME?

Si utiliza CNAME, el vínculo de no participación debe contener "client=clientcode , por ejemplo:
https://my.cname.domain/optout?client=clientcode.

Reemplazar clientcode con el código de cliente, agregue el texto o la imagen que se vinculará a la variable URL de exclusión.

Limitaciones conocidas

  • El modo de control de calidad no es persistente cuando tiene CNAME y at.js 1.x porque se basa en una cookie de terceros. La solución es añadir los parámetros de vista previa a cada URL a la que navegue. El modo de control de calidad es persistente cuando tiene CNAME y at.js 2.x.
  • Al utilizar CNAME, es más probable que el tamaño del encabezado de la cookie para Target las llamadas a aumentan. Adobe recomienda mantener el tamaño de la cookie por debajo de 8 KB.

En esta página