Asset

ระบุเนื้อหาที่ไม่ซ้ํา

เนื้อหาดิจิทัลคือเอนทิตีออนไลน์ที่ระบุตัวบุคคลนั้นได้และจัดการได้ ซึ่งโดยทั่วไปแล้วจะมีบริการหรือเนื้อหาบางอย่าง ตัวอย่างเนื้อหา ได้แก่ เว็บไซต์, แอป Android, ฟีด Twitter และเพจ Plus

การแสดง JSON
{
  // Union field, only one of the following:
  "web": {
    object(WebAsset)
  },
  "androidApp": {
    object(AndroidAppAsset)
  },
}
ชื่อช่อง ประเภท คำอธิบาย
ช่อง Union เพียงช่องใดช่องหนึ่งต่อไปนี้
web object(WebAsset) กําหนดว่านี่คือเนื้อหาบนเว็บหรือไม่
androidApp object(AndroidAppAsset) กําหนดว่านี่คือชิ้นงานแอป Android หรือไม่

เนื้อหาบนเว็บ

อธิบายเนื้อหาบนเว็บ

การแสดง JSON
{
  "site": string,
}
ชื่อช่อง ประเภท คำอธิบาย
site string

ชิ้นงานเว็บจะระบุโดย URL ที่มีเฉพาะรูปแบบของสคีม ชื่อโฮสต์ และส่วนพอร์ตเท่านั้น รูปแบบคือ

http[s]://<hostname>[:<port>]

ชื่อโฮสต์ต้องสมบูรณ์แบบ: ชื่อโฮสต์ต้องลงท้ายด้วยเครื่องหมายจุดเดียว (".")

อนุญาตให้ใช้เฉพาะรูปแบบ "http" และ "https" เท่านั้น

หมายเลขพอร์ตจะกําหนดให้เป็นตัวเลขทศนิยม และต้องละเว้นไว้หากใช้หมายเลขพอร์ตมาตรฐานคือ 80 สําหรับ http และ 443 สําหรับ https

ซึ่งเราเรียก URL นี้ว่า "เว็บไซต์" URL ทั้งหมดที่ใช้สคีม ชื่อโฮสต์ และพอร์ตเดียวกันนั้นเหมือนกันจะถือว่าเป็นส่วนหนึ่งของเว็บไซต์ และเป็นของชิ้นงานบนเว็บ

ตัวอย่าง: เนื้อหาที่มีเว็บไซต์ https://www.google.com มี URL ต่อไปนี้ทั้งหมด

  • https://www.google.com/
  • https://www.google.com:443/
  • https://www.google.com/foo
  • https://www.google.com/foo?bar
  • https://www.google.com/foo#bar
  • https://user@password:www.google.com/

แต่ไม่มี URL เหล่านี้

  • http://www.google.com/ (รูปแบบไม่ถูกต้อง)
  • https://google.com/ (ชื่อโฮสต์ไม่ตรงกัน)
  • https://www.google.com:444/ (พอร์ตไม่ตรงกัน) ต้องระบุ

เนื้อหาแอป Android

อธิบายชิ้นงานแอป Android

การแสดง JSON
{
  "packageName": string,
  "certificate": {
    object(CertificateInfo)
  },
}
ชื่อช่อง ประเภท คำอธิบาย
packageName string ปกติแล้วเนื้อหาแอป Android จะอิงตามชื่อแพ็กเกจ Java เช่น แอป Google Maps ใช้ชื่อแพ็กเกจ com.google.android.apps.maps ต้องระบุ
certificate object(CertificateInfo)

เนื่องจากมีการบังคับใช้ความเป็นเอกลักษณ์ของชื่อแพ็กเกจที่ไม่ซ้ํากัน เราจึงกําหนดให้ต้องมีใบรับรองการลงนามร่วมกับชื่อแพ็กเกจเพื่อระบุแอปที่ไม่ซ้ํากัน

ระบบจะหมุนเวียนคีย์ Signing ของบางแอป ดังนั้นคีย์อาจมีการรับรองคีย์ที่ต่างกันเมื่อเวลาผ่านไป เราถือว่ารายการเหล่านี้เป็นเนื้อหาที่แตกต่างกัน เนื่องจากเราใช้ (ชื่อแพ็กเกจ ใบรับรอง) เป็นรหัสที่ไม่ซ้ํากัน ซึ่งโดยปกติแล้วจะไม่ทําให้เกิดปัญหาใดๆ เนื่องจากแอปทั้ง 2 เวอร์ชันจะสร้างข้อความเดียวกันหรือคล้ายกัน อย่างไรก็ตาม จะต้องอัปเดตเนื้อหาอื่นๆ ที่พูดคําชี้แจงเกี่ยวกับแอปเมื่อหมุนเวียนคีย์

(โปรดทราบว่าไวยากรณ์สําหรับการเผยแพร่และการค้นหาใบแจ้งยอดจะมีน้ําตาลไวยากรณ์ ซึ่งช่วยให้คุณระบุแอปที่ใบรับรองหลายใบรับรองรู้จักได้อย่างง่ายดาย) ต้องระบุ

ข้อมูลใบรับรอง

อธิบายใบรับรอง X509

การแสดง JSON
{
  "sha256Fingerprint": string,
}
ชื่อช่อง ประเภท คำอธิบาย
sha256Fingerprint string

ลายนิ้วมือ SHA-265 ตัวพิมพ์ใหญ่ของใบรับรอง จากใบรับรอง PEM ดได้ดังต่อไปนี้

$ keytool -printcert -file $CERTFILE | grep SHA256:
SHA256: 14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83: \
    42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5

หรือแบบนี้

$ openssl x509 -in $CERTFILE -noout -fingerprint -sha256
SHA256 Fingerprint=14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64: \
    16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5

ในตัวอย่างนี้ เนื้อหาในช่องนี้จะเป็น 14:6D:E9:83:C5:73: 06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF: 44:E5

หากเครื่องมือเหล่านี้ไม่พร้อมใช้งาน คุณอาจแปลงใบรับรอง PEM เป็นรูปแบบ DER คํานวณแฮช SHA-256 ของสตริงนั้นและแสดงผลลัพธ์เป็นเลขฐานสิบหก (กล่าวคือ เลขฐานสิบหกตัวพิมพ์ใหญ่ของเลขฐานแต่ละอ็อกเท็ต โดยคั่นด้วยโคลอน)