Vanliga frågor

Följande information besvarar vanliga frågor om att begära och implementera CNAME-stöd i Target:

Kan jag tillhandahålla mitt eget certifikat (ta med ditt eget certifikat eller BYOC)?

Du kan ange ett eget certifikat. Adobe rekommenderar dock inte detta tillvägagångssätt. Hanteringen av SSL-certifikatets livscykel är enklare för både Adobe och dig om Adobe köper och kontrollerar certifikatet. SSL-certifikaten måste förnyas varje år. Därför måste Adobe Client Care kontakta dig varje år för att få ett nytt certifikat i tid. Vissa kunder kan få svårt att snabbt få fram ett förnyat certifikat. Implementeringen av Target äventyras när certifikatet upphör att gälla eftersom webbläsare nekar anslutningar.

VARNING
Om du begär en CNAME-implementering av Target-ditt eget certifikat ansvarar du för att tillhandahålla förnyade certifikat till Adobe Client Care varje år. Om du tillåter att ditt CNAME-certifikat upphör att gälla innan Adobe kan distribuera ett förnyat certifikat uppstår ett driftstopp för din specifika Target-implementering.

Hur länge till mitt nya SSL-certifikat upphör att gälla?

Alla certifikat som köpts av Adobe gäller i ett år. Mer information finns i DigiCert-artikeln om ettårscertifikat.

Vilka värdnamn ska jag välja? Hur många värdnamn per domän ska jag välja?

CNAME-målimplementeringar kräver endast ett värdnamn per domän på SSL-certifikatet och i kundens DNS. Adobe rekommenderar ett värdnamn per domän. Vissa kunder kräver fler värdnamn per domän för sina egna syften (till exempel testning i mellanlagring), vilket stöds.

De flesta kunder väljer ett värdnamn som target.example.com. Adobe rekommenderar att du följer denna praxis, men valet är i slutändan ditt. Begär inte ett värdnamn för en befintlig DNS-post. Om du gör det uppstår en konflikt och fördröjer tiden till lösning av din Target CNAME-begäran.

Jag har redan en CNAME-implementering för Adobe Analytics, kan jag använda samma certifikat eller värdnamn?

Nej, Target kräver ett separat värdnamn och certifikat.

Påverkar min nuvarande implementering av Target av ITP 2.x?

Apple ITP (Intelligent Tracking Prevention) version 2.3 introducerade funktionen för hantering av CNAME-insvepning, som kan identifiera Target CNAME-implementeringar och minskar cookiens giltighetstid till sju dagar. För närvarande har Target ingen lösning för ITP:s CNAME-insvepningsåtgärder. Mer information om ITP finns i Apple Intelligent Tracking Prevention (ITP) 2.x.

Vilken typ av tjänstavbrott kan jag förvänta mig när CNAME-implementeringen distribueras?

Det uppstår inga avbrott i tjänsten när certifikatet distribueras (inklusive certifikatförnyelse).

När du har ändrat värdnamnet i implementeringskoden för Target (serverDomain in at.js) till det nya CNAME-värdnamnet (target.example.com) behandlar webbläsare återkommande besökare som nya besökare. Returnerade besökares profildata går förlorade eftersom den tidigare cookien inte är tillgänglig under det gamla värdnamnet (clientcode.tt.omtrdc.net). Den tidigare cookien är inte tillgänglig på grund av säkerhetsmodeller i webbläsaren. Denna störning inträffar endast vid den första brytningen till den nya CNAME. Certifikatförnyelser har inte samma effekt eftersom värdnamnet inte ändras.

Vilken nyckeltyp och certifikatsignaturalgoritm används för min CNAME-implementering?

Alla certifikat är RSA SHA-256 och nycklarna är RSA 2048-bitars som standard. Nyckelstorlekar som är större än 2 048 bitar ska begäras explicit via Customer Care.

Hur kan jag verifiera att min CNAME-implementering är redo för trafik?

Använd följande uppsättning kommandon (i kommandoradsterminalen för macOS eller Linux med bash och curl >=7.49):

  1. Kopiera och klistra in den här bash-funktionen i terminalen, eller klistra in funktionen i bash-startskriptfilen (vanligtvis ~/.bash_profile eller ~/.bashrc) så att funktionen är tillgänglig i alla terminalsessioner:

    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="41 42 44 45 46 47 48"
      local edgeDomain="tt.omtrdc.net"
      local edgeFormat="mboxedge%d%s.$edgeDomain"
      local poolDomain="pool.data.adobedc.net"
      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 sslShopperUrl="https://www.sslshopper.com/ssl-checker.html#hostname=$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 cnameExists=""
      local endToEndTestSucceeded=""
    
      for region in IRL1 IND1 SIN OR SYD VA TYO; do
        local currShard="${region}-${poolDomain}"
        local curlResult="$(curl -vsm20 --connect-to "$hostname:443:$currShard:443" "$url" 2>&1)"
    
        if grep -q "$curlValidation" <<< "$curlResult"; then
          shardsFound+=" $currShard"
    
          if grep -q "$curlResponseValidation" <<< "$curlResult"; then
            shardsFoundCount=$((shardsFoundCount+1))
            shardsFoundOutput+="\n\n$miniRule $success $hostname [edge shard: $currShard] $miniRule\n"
          else
            shardsFoundOutput+="\n\n$miniRule $failure $hostname [edge shard: $currShard] $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
    
      echo
      echo "$horizontalRule"
      echo
      echo "$service validation for hostname $hostname:"
    
      local 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
    
      for region in IRL1 IND1 SIN OR SYD VA TYO; do
        local curlResult="$(curl -vsm20 --connect-to "$hostname:443:${region}-pool.data.adobedc.net:443" "https://$hostname$curlEndpoint" 2>&1)"
    
        if grep -q "$curlValidation" <<< "$curlResult"; then
          if grep -q "$curlResponseValidation" <<< "$curlResult"; then
            echo -en "$success $hostname passes TLS and HTTP response validation for region $region"
            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 for region $region --" \
              "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 for region $region -- "
          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 Shopper ($sslShopperUrl):"
            echo ""
            echo "$horizontalRule"
            echo "$curlResult" | sed 's/^/    /g'
            echo "$horizontalRule"
            echo ""
          else
            echo "the required DNS CNAME record is missing, see above"
          fi
        fi
      done
    
      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, see SSL Shopper:"
          echo ""
          echo "    $info  $sslShopperUrl"
          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"
        echo ""
      fi
    
      echo
      echo "$horizontalRule"
      echo
    }
    
  2. Klistra in det här kommandot (ersätt target.example.com det med ditt värdnamn):

    adobeTargetCnameValidation target.example.com
    

    Om implementeringen är klar visas utdata som nedan. Den viktiga delen är att alla valideringsstatusrader visar i stället för 🚫. Varje CNAME-målserver ska visa CN=target.example.com, vilket matchar det primära värdnamnet på det begärda certifikatet (ytterligare SAN-värdnamn på certifikatet skrivs inte ut i dessa utdata).

    $ 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 for region IRL1
    ✅ target.example.com passes TLS and HTTP response validation for region IND1
    ✅ target.example.com passes TLS and HTTP response validation for region SIN
    ✅ target.example.com passes TLS and HTTP response validation for region OR
    ✅ target.example.com passes TLS and HTTP response validation for region SYD
    ✅ target.example.com passes TLS and HTTP response validation for region VA
    ✅ target.example.com passes TLS and HTTP response validation for region TYO
    ✅ target.example.com passes shard validation for the following 7 edge shards:
    
    ===== ✅ target.example.com [edge shard: IRL1-pool.data.adobedc.net] =====
    *  expire date: Feb 20 23:59:59 2026 GMT
    *  issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 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: IND1-pool.data.adobedc.net] =====
    *  expire date: Feb 20 23:59:59 2026 GMT
    *  issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 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: SIN-pool.data.adobedc.net] =====
    *  expire date: Feb 20 23:59:59 2026 GMT
    *  issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 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: OR-pool.data.adobedc.net] =====
    *  expire date: Feb 20 23:59:59 2026 GMT
    *  issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 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: SYD-pool.data.adobedc.net] =====
    *  expire date: Feb 20 23:59:59 2026 GMT
    *  issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 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: VA-pool.data.adobedc.net] =====
    *  expire date: Feb 20 23:59:59 2026 GMT
    *  issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 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: TYO-pool.data.adobedc.net] =====
    *  expire date: Feb 20 23:59:59 2026 GMT
    *  issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 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, see SSL Shopper:
    
        🔎  https://www.sslshopper.com/ssl-checker.html#hostname=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
    
OBSERVERA
Om det här verifieringskommandot misslyckas vid DNS-validering men du redan har gjort de nödvändiga DNS-ändringarna, kan du behöva vänta tills DNS-uppdateringarna har spridit sig helt. DNS-poster har en associerad TTL (time-to-live) som anger cacheförfallotid för DNS-svar för dessa poster. Därför kan du behöva vänta åtminstone så länge som TTL:erna är klara. Du kan använda kommandot dig target.example.com eller G Suite-verktygslådanför att leta upp dina specifika TTL-filer. Information om hur du kontrollerar DNS-spridning över hela världen finns i whatsmydns.net.