Apple Certificate — คืออะไร มีประเภทใดบ้าง และทำงานอย่างไร

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-04-16 เวลาอ่าน: 9 นาที

Apple Certificate คือเอกสารดิจิทัลที่ออกโดย Apple Developer Portal สำหรับลงนามโค้ดของแอปพลิเคชันบน iOS, iPadOS, macOS, tvOS และ watchOS ตามข้อมูลจาก Apple Developer Support, 2026 ใบรับรองเป็นส่วนหนึ่งของโครงสร้างพื้นฐานคีย์สาธารณะ (PKI) และจำเป็นสำหรับการยืนยันตัวตนของนักพัฒนา ในบทความนี้เราจะกล่าวถึง ประเภทของใบรับรอง กระบวนการสร้างและการจัดการ

สาระสำคัญ

  • Apple Certificate — ใบรับรองดิจิทัลที่ยืนยันตัวตนของนักพัฒนาเมื่อลงนามโค้ด
  • Development — ใบรับรองที่อนุญาตให้รันแอปพลิเคชันบนอุปกรณ์จริงในระหว่างการพัฒนา
  • Distribution — ใบรับรองที่จำเป็นสำหรับการเผยแพร่ใน App Store หรือการแจกจ่ายแบบ Ad Hoc
  • Push Notification — ใบรับรองที่ใช้สำหรับลงนามการเชื่อมต่อกับ APNs และส่งการแจ้งเตือน
  • คีย์ส่วนตัว ของใบรับรองถูกเก็บไว้ใน Keychain ของนักพัฒนาและไม่ควรส่งต่อให้บุคคลที่สาม

Apple Certificate คืออะไร

Apple Certificate คือใบรับรองการเข้ารหัสรูปแบบ X.509 ที่ออกโดยศูนย์ออกใบรับรอง Apple (Apple Certificate Authority) ใบรับรองนี้ยืนยันว่าเจ้าของเป็นสมาชิกที่ลงทะเบียนของ Apple Developer Program และมีสิทธิ์ในการลงนามแอปพลิเคชันสำหรับระบบนิเวศของ Apple ใบรับรองประกอบด้วยคีย์สาธารณะ ข้อมูลเมตาของเจ้าของ และลายเซ็นดิจิทัลของ Apple CA — ทุกคนสามารถตรวจสอบความถูกต้องของใบรับรองได้โดยใช้ใบรับรองรากของ Apple ที่ติดตั้งอยู่ในระบบปฏิบัติการ

สถาปัตยกรรม PKI ของ Apple ประกอบด้วยสามระดับ: ใบรับรองราก Apple (Apple Root CA), ใบรับรองระดับกลาง (Apple Worldwide Developer Relations CA) และใบรับรองนักพัฒนา Apple Worldwide Developer Relations CA ลงนามในใบรับรองนักพัฒนาทั้งหมด — หากใบรับรองระดับกลางนี้ไม่มีอยู่ในห่วงโซ่ความน่าเชื่อถือ ลายเซ็นโค้ดจะถือว่าไม่ถูกต้อง ใบรับรองรากของ Apple ได้รับการอัปเดตโดยอัตโนมัติผ่านกลไก Apple Trust Store ที่ติดตั้งใน iOS และ macOS

ใบรับรองแต่ละใบมีอายุการใช้งาน — ตั้งแต่หนึ่งถึงสามปี ขึ้นอยู่กับประเภท Apple Developer Program จะแจ้งให้นักพัฒนาทราบโดยอัตโนมัติ 30 วันก่อนที่ใบรับรองจะหมดอายุผ่านอีเมลและการแจ้งเตือนแบบ push หลังจากหมดอายุแล้ว ไม่สามารถใช้ใบรับรองเก่าสำหรับการลงนามบิลด์ใหม่ได้ — ต้องออกใบรับรองใหม่ ในขณะที่แอปพลิเคชันที่ลงนามด้วยใบรับรองที่หมดอายุแล้วยังคงทำงานบนอุปกรณ์ของผู้ใช้ได้ตามปกติ

ห่วงโซ่ความน่าเชื่อถือของ Apple

ห่วงโซ่ความน่าเชื่อถือ รับประกันว่าใบรับรองของนักพัฒนาออกโดย Apple จริงๆ iOS ตรวจสอบ: ใบรับรองราก Apple Root CA (ติดตั้งในเฟิร์มแวร์), ใบรับรองระดับกลาง Apple Worldwide Developer Relations CA, ใบรับรองนักพัฒนา หากองค์ประกอบใดในห่วงโซ่หายไปหรือไม่ถูกต้อง iOS จะบล็อกการเปิดแอปพลิเคชันพร้อมข้อผิดพลาด code signing macOS มียูทิลิตี้ security สำหรับตรวจสอบห่วงโซ่ความน่าเชื่อถือของใบรับรองใดๆ ในพวงกุญแจ

ใบรับรอง Apple ทำงานอย่างไร

กระบวนการลงนามโค้ดโดยใช้ Apple Certificate อาศัยการเข้ารหัสแบบไม่สมมาตร คีย์ส่วนตัว (private key) ถูกเก็บไว้บนคอมพิวเตอร์ของนักพัฒนาใน Keychain ในขณะที่คีย์สาธารณะ (public key) ถูกรวมอยู่ในใบรับรองและส่งไปยัง Apple Developer Portal เมื่อ Xcode ลงนามแอปพลิเคชัน มันจะสร้างไดเจสต์ (แฮช) ของไฟล์ไบนารีและเข้ารหัสด้วยคีย์ส่วนตัว — นี่คือลายเซ็นดิจิทัล อุปกรณ์จะถอดรหัสลายเซ็นด้วยคีย์สาธารณะจากใบรับรองและเปรียบเทียบกับแฮชที่คำนวณได้

Apple ใช้อัลกอริทึม ECDSA (Elliptic Curve Digital Signature Algorithm) ด้วยเส้นโค้ง P-256 สำหรับใบรับรองทั้งหมดที่ออกหลังปี 2021 ก่อนหน้านี้ใช้ RSA-2048 การเปลี่ยนไปใช้ ECDSA ช่วยเพิ่มความเร็วในการตรวจสอบลายเซ็นบนอุปกรณ์และลดขนาดลายเซ็น — สำหรับแอปพลิเคชันมือถือนี่สำคัญเป็นพิเศษเนื่องจากการตรวจสอบลายเซ็นจะดำเนินการทุกครั้งที่เปิดแอป ตามข้อมูลจาก Apple Security Engineering (2025) ECDSA P-256 ให้ระดับความปลอดภัยเทียบเท่า RSA-2048 โดยมีต้นทุนการคำนวณที่ต่ำกว่าอย่างมาก

สำหรับกระบวนการ CI/CD ใบรับรองพร้อมกับคีย์ส่วนตัวจำเป็นต้องส่งออกเป็น PKCS12 (.p12) และจัดเก็บในที่เก็บข้อมูลที่ปลอดภัย GitHub Actions, Bitrise, Jenkins และระบบ CI อื่นๆ รองรับการนำเข้าใบรับรองผ่านตัวแปรสภาพแวดล้อมหรือ secrets หลังจากนำเข้าไปยัง CI agent ใบรับรองจะถูกเพิ่มชั่วคราวลงในพวงกุญแจ ใช้สำหรับลงนาม และถูกลบออก Fastlane Match ทำให้กระบวนการนี้เป็นอัตโนมัติ โดยซิงค์ใบรับรองระหว่างนักพัฒนาผ่านที่เก็บ git ที่เข้ารหัส

ความแตกต่างระหว่างใบรับรอง Development และ Distribution

Development อนุญาตให้ลงนามแอปพลิเคชันเพื่อรันบนอุปกรณ์จริงของนักพัฒนา การได้รับใบรับรองนี้只需มีบัญชี Apple ID ฟรี — Xcode สามารถสร้างใบรับรอง Development ได้โดยอัตโนมัติ Distribution ออกให้เฉพาะบัญชี Apple Developer Program แบบเสียค่าบริการ ($99/ปี) และจำเป็นสำหรับการส่งแอปไปยัง App Store, การแจกจ่ายแบบ Ad Hoc หรือ Enterprise บัญชีเดียวสามารถมีใบรับรอง Distribution ได้หลายใบ — ตัวอย่างเช่น แยกต่างหากสำหรับแต่ละแอปพลิเคชันหรือสำหรับทีมต่างๆ

ประเภทของ Apple Certificate

Apple Developer Portal มีใบรับรองหลายประเภท แต่ละประเภทออกแบบมาเพื่อวัตถุประสงค์เฉพาะ iOS App Development — ใบรับรองพื้นฐานสำหรับการลงนามแอปพลิเคชันในขั้นตอนการพัฒนา Apple Distribution — ใบรับรองหลักสำหรับการเผยแพร่ใน App Store Mac Development และ Mac Distribution — อะนาล็อกสำหรับแอปพลิเคชัน macOS สำหรับใบรับรองแต่ละประเภทจะมีคำขอ (CSR) แยกต่างหากใน Apple Developer Portal

หมวดหมู่แยกต่างหากคือใบรับรองสำหรับการแจ้งเตือนแบบ push Apple Push Notification service (APNs) ต้องการใบรับรอง SSL แยกต่างหากหรือการใช้โทเค็นการตรวจสอบสิทธิ์ (APNs Auth Key) ใบรับรอง SSL APNs ออกแยกต่างหากสำหรับสภาพแวดล้อม Development (Sandbox) และ Production และผูกกับ App ID ที่เฉพาะเจาะจง APNs Auth Key — เป็นแนวทางที่ทันสมัยกว่า: คีย์เดียว (.p8) ให้บริการแอปพลิเคชันทั้งหมดในบัญชี ทำให้การจัดการง่ายขึ้น

ประเภทใบรับรองวัตถุประสงค์อายุการใช้งาน
iOS App Developmentลงนามสำหรับการทดสอบบนอุปกรณ์1 ปี
Apple Distributionเผยแพร่ใน App Store และ Ad Hoc1 ปี
Mac Developmentลงนามแอป macOS สำหรับการพัฒนา1 ปี
Mac Distributionเผยแพร่ใน Mac App Store1 ปี
APNs SSL (Sandbox)การแจ้งเตือนแบบ push ในสภาพแวดล้อมทดสอบ1-3 ปี
APNs SSL (Production)การแจ้งเตือนแบบ push ในระบบจริง1-3 ปี

การสร้างและจัดการใบรับรอง

การสร้าง Apple Certificate เริ่มต้นด้วยการสร้างคำขอใบรับรอง (Certificate Signing Request, CSR) ผ่าน Keychain Access บน macOS Keychain Access สร้างคู่คีย์: คีย์ส่วนตัวยังคงอยู่ในพวงกุญแจ ในขณะที่ CSR ถูกส่งไปยัง Apple Developer Portal หลังจากยืนยันตัวตน Apple จะลงนาม CSR และออกใบรับรองสำเร็จรูป (.cer) ที่ต้องดาวน์โหลดและติดตั้งโดยการดับเบิลคลิก

สำหรับการจัดการหลายโปรเจกต์และหลายทีม Apple อนุญาตให้สร้างใบรับรองสำหรับ Team ID ที่แตกต่างกัน นักพัฒนาหนึ่งคนสามารถเป็นสมาชิกของหลายทีม (ผ่าน Apple Developer Program — App Store Connect) และแต่ละทีมจะออกใบรับรองแยกต่างหาก Xcode จะสลับใบรับรองโดยอัตโนมัติขึ้นอยู่กับทีมที่เลือกในการตั้งค่า Signing & Capabilities

การเพิกถอนใบรับรองเป็นการดำเนินการที่สำคัญ: แอปพลิเคชันทั้งหมดที่ลงนามด้วยใบรับรองนี้จะไม่สามารถติดตั้งบนอุปกรณ์ใหม่ได้ (แอปที่ติดตั้งแล้วยังคงทำงานได้) Apple Developer Portal อนุญาตให้เพิกถอนใบรับรองใดๆ ในส่วน Certificates สาเหตุของการเพิกถอน: คีย์ส่วนตัวถูกบุกรุก นักพัฒนาออกจากทีม ละเมิดเงื่อนไขของ Apple Developer Program หลังจากเพิกถอนแล้ว จำเป็นต้องออกใบรับรองใหม่และลงนามบิลด์ที่ใช้งานอยู่ทั้งหมดอีกครั้ง

Keychain และการส่งออกใบรับรอง

Keychain (พวงกุญแจ) เป็นพื้นที่จัดเก็บระบบของ macOS สำหรับใบรับรอง คีย์ส่วนตัว และรหัสผ่าน ใบรับรอง Apple ทั้งหมดและคีย์ส่วนตัวที่เกี่ยวข้องจะถูกเก็บไว้ในพวงกุญแจเข้าสู่ระบบ (login.keychain) ของผู้ใช้ Xcode เข้าถึง Keychain เมื่อลงนามโค้ด โดยเลือกใบรับรองที่เหมาะสมโดยอัตโนมัติตามประเภทบิลด์ สำหรับการวินิจฉัยปัญหาลายเซ็น สามารถใช้ยูทิลิตี้ Keychain Access ในตัว (โฟลเดอร์ /Applications/Utilities)

การส่งออกใบรับรองสำหรับ CI/CD ทำผ่าน Keychain Access: เลือกใบรับรองและคีย์ส่วนตัวที่เกี่ยวข้อง (ต้องขยายอยู่ในบรรทัดเดียวกัน) คลิกขวาและเลือก Export รูปแบบ — PKCS12 (.p12) เมื่อส่งออก Keychain จะขอรหัสผ่านเพื่อป้องกันไฟล์ — รหัสผ่านนี้จะต้องใช้เมื่อนำเข้าบน CI server หากไม่มีคีย์ส่วนตัว ใบรับรองที่ส่งออกจะไร้ประโยชน์สำหรับการลงนาม — สามารถใช้ได้เฉพาะการตรวจสอบโค้ดที่ลงนามแล้วเท่านั้น

การนำเข้าใบรับรองใน CI/CD

ตัวอย่างคำสั่งสำหรับนำเข้าใบรับรองเข้าสู่พวงกุญแจของ CI agent โดยใช้ยูทิลิตี้ security:

bash
# สร้างพวงกุญแจชั่วคราว
security create-keychain -p "temp" build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p "temp" build.keychain

# นำเข้าใบรับรองจาก .p12
security import certificate.p12 -k build.keychain \
  -P "${P12_PASSWORD}" -T /usr/bin/codesign

# กำหนดค่านโยบายการลงนาม
security set-key-partition-list -S apple: -s \
  -k "temp" build.keychain

Security create-keychain สร้างพวงกุญแจชั่วคราวที่แยกจากพวงกุญแจของผู้ใช้ สิ่งนี้สำคัญสำหรับ CI เพื่อไม่ให้พวงกุญแจระบบของ agent ปนเปื้อน แฟล็ก -T /usr/bin/codesign อนุญาตให้ยูทิลิตี้ codesign เข้าถึงคีย์โดยไม่ต้องขอรหัสผ่าน — มิฉะนั้นการลงนามอัตโนมัติใน pipeline จะถูกขัดจังหวะด้วยกล่องโต้ตอบ คำสั่ง set-key-partition-list จำเป็นสำหรับความเข้ากันได้กับข้อกำหนดของ macOS สำหรับการลงนามโค้ดในโหมดอัตโนมัติ

ปัญหาเกี่ยวกับใบรับรองและแนวทางแก้ไข

ข้อผิดพลาดที่พบบ่อยที่สุด — “No signing certificate found” เมื่อคอมไพล์ใน Xcode เกิดขึ้นเมื่อ Keychain ไม่มีใบรับรองที่มีคีย์ส่วนตัวที่สอดคล้องกับประเภทบิลด์ที่เลือก วิธีแก้ไข: ตรวจสอบ Keychain Access ว่ามีใบรับรองหรือไม่ ดาวน์โหลดจาก Apple Developer Portal และติดตั้ง หากคีย์ส่วนตัวสูญหาย (เครื่องเก่า, ติดตั้งระบบใหม่) จำเป็นต้องเพิกถอนใบรับรองเก่าและออกใบรับรองใหม่

ข้อผิดพลาด “Valid signing certificate not found” ใน CI/CD เกิดขึ้นหาก agent ไม่ได้ติดตั้งใบรับรองระดับกลางของ Apple (Apple Worldwide Developer Relations CA) Apple รวมใบรับรองระดับกลางในห่วงโซ่เมื่อดาวน์โหลดใบรับรองนักพัฒนา แต่เมื่อส่งออก .p12 ด้วยตนเอง ใบรับรองเหล่านี้อาจหายไป วิธีแก้ไข — ดาวน์โหลดใบรับรองระดับกลางจากเว็บไซต์ Apple Certificate Authority และติดตั้งในพวงกุญแจของ CI agent

ปัญหากับ ใบรับรองที่หมดอายุ แสดงเป็นข้อผิดพลาด “This certificate has an invalid issuer” เมื่อลงนาม Apple Developer Portal แสดงสถานะและวันที่หมดอายุของใบรับรองแต่ละใบ หากแอปพลิเคชันเผยแพร่ใน App Store ด้วยใบรับรองที่หมดอายุแล้ว แอปยังคงทำงานได้ — App Store ใช้ใบรับรอง Apple ของตัวเองสำหรับการแจกจ่าย อย่างไรก็ตาม การอัปโหลดบิลด์ใหม่จะต้องใช้ใบรับรอง Distribution ที่ยังมีผลบังคับใช้ Fastlane มีคำสั่ง cert สำหรับการสร้างและอัปเดตใบรับรองโดยอัตโนมัติ

คำถามที่พบบ่อย

สามารถใช้ Apple Certificate หนึ่งใบสำหรับแอป iOS และ macOS ได้หรือไม่?

ไม่ได้ iOS และ macOS มีใบรับรองประเภทต่างกัน — iOS App Development และ Mac Development Apple Distribution ก็แบ่งตามแพลตฟอร์มเช่นกัน เมื่อสร้างใบรับรองใน Apple Developer Portal ต้องระบุแพลตฟอร์มเป้าหมาย — ไม่มีใบรับรองสากลสำหรับทุกแพลตฟอร์ม

จะทำอย่างไรหากคีย์ส่วนตัวของใบรับรองสูญหาย?

ต้องเพิกถอนใบรับรองเก่าใน Apple Developer Portal ผ่าน Certificates, Identifiers & Profiles จากนั้นสร้าง CSR ใหม่ผ่าน Keychain Access และออกใบรับรองใหม่ ทั้งหมด แอปพลิเคชันที่ลงนามด้วยใบรับรองเก่าจะต้องลงนามใหม่และอัปโหลดไปยัง App Store อีกครั้งหากต้องการเผยแพร่อัปเดต

ในบัญชี Apple Developer หนึ่งบัญชีสามารถมีใบรับรองได้กี่ใบ?

สำหรับบัญชี Apple Developer Program หนึ่งบัญชี อนุญาตให้มีใบรับรอง Distribution ได้ไม่เกินสองใบและใบรับรอง Development ไม่จำกัดจำนวนพร้อมกัน Enterprise มีขีดจำกัดแยกต่างหาก หากถึงขีดจำกัดใบรับรอง Distribution ต้องเพิกถอนใบรับรองที่มีอยู่ใบหนึ่งก่อนสร้างใหม่

จะตรวจสอบอายุใบรับรองจากบรรทัดคำสั่งได้อย่างไร?

ใช้ยูทิลิตี้ security: security find-identity -v -p basic จะแสดงรายการใบรับรองทั้งหมดในพวงกุญแจพร้อมวันที่หมดอายุ สำหรับใบรับรองเฉพาะ ให้ระบุ SHA-1 hash: security find-certificate -c “Developer” -p | openssl x509 -noout -enddate

การเปลี่ยนบัญชี Apple ID ส่งผลต่อใบรับรองที่มีอยู่หรือไม่?

ใช่ ใบรับรองผูกกับบัญชี Apple Developer เฉพาะ (Team ID) เมื่อเปลี่ยนบัญชี ใบรับรองเก่าจะไม่ถูกต้องสำหรับ Team ID ใหม่ Xcode เมื่อเปลี่ยนบัญชีใน Accounts Preferences จะขอสร้างใบรับรองใหม่สำหรับทีมใหม่โดยอัตโนมัติ

สรุป

  • Apple Certificate — ใบรับรองดิจิทัล X.509 ที่ออกโดย Apple CA เพื่อยืนยันตัวตนนักพัฒนาในการลงนามโค้ด
  • Development — อนุญาตให้รันแอปพลิเคชันบนอุปกรณ์จริงโดยไม่ต้องเผยแพร่ใน App Store
  • Distribution — จำเป็นสำหรับการอัปโหลดแอปไปยัง App Store และการแจกจ่ายแบบ Ad Hoc
  • APNs — ใบรับรองหรือโทเค็นจำเป็นสำหรับการส่งการแจ้งเตือนแบบ push ผ่านเซิร์ฟเวอร์ Apple
  • คีย์ส่วนตัว ถูกเก็บไว้ใน Keychain ของนักพัฒนาและไม่สามารถกู้คืนได้หากสูญหาย — ต้องเพิกถอนใบรับรอง
  • PKCS12 การส่งออกใช้สำหรับถ่ายโอนใบรับรองระหว่างเครื่องคอมพิวเตอร์และระบบ CI/CD
  • ห่วงโซ่ความน่าเชื่อถือ ของ Apple ประกอบด้วยใบรับรองราก ระดับกลาง และนักพัฒนา — การละเมิดจุดใดจุดหนึ่งจะบล็อกการลงนาม

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม