Apple Certificate — iOS, iPadOS, macOS, tvOS va watchOS uchun ilovalar kodini imzolash maqsadida Apple Developer Portal tomonidan chiqarilgan raqamli hujjat. Apple Developer Support, 2026 ma'lumotlariga ko'ra, sertifikatlar ochiq kalit infratuzilmasining (PKI) bir qismidir va dasturchi shaxsini tasdiqlash uchun zarurdir. Maqolada sertifikat turlarini, ularni yaratish va boshqarish jarayonini ko'rib chiqamiz.
Asosiy fikrlar
Apple Certificate — Apple sertifikatlashtirish markazi (Apple Certificate Authority) tomonidan chiqarilgan X.509 formatidagi kriptografik sertifikat. U egasining Apple Developer Program'ning ro'yxatdan o'tgan a'zosi ekanligini va Apple ekotizimi uchun ilovalarni imzolash huquqiga ega ekanligini tasdiqlaydi. Sertifikat ochiq kalit, egasining meta-ma'lumotlari va Apple CA ning raqamli imzosidan iborat — har kim operatsion tizimga o'rnatilgan Apple ildiz sertifikati yordamida sertifikatning haqiqiyligini tekshirishi mumkin.
Apple PKI arxitekturasi uch darajani o'z ichiga oladi: Apple ildiz sertifikati (Apple Root CA), oraliq sertifikat (Apple Worldwide Developer Relations CA) va dasturchi sertifikati. Apple Worldwide Developer Relations CA barcha dasturchi sertifikatlarini imzolaydi — agar bu oraliq sertifikat ishonch zanjirida bo'lmasa, kod imzosi haqiqiy emas deb hisoblanadi. Apple ildiz sertifikatlari iOS va macOS'ga o'rnatilgan Apple Trust Store mexanizmi orqali avtomatik yangilanadi.
Har bir sertifikatning amal qilish muddati bor — turiga qarab bir yildan uch yilgacha. Apple Developer Program sertifikat muddati tugashiga 30 kun qolganida dasturchini elektron pochta va push bildirishnomalari orqali avtomatik ogohlantiradi. Muddat tugagach, eski sertifikat yangi bildlarni imzolash uchun ishlatilmaydi — yangisini chiqarish kerak, biroq muddati o'tgan sertifikat bilan imzolangan ilovalar foydalanuvchi qurilmalarida ishlashda davom etadi.
Ishonch zanjiri dasturchi sertifikatining haqiqatan Apple tomonidan chiqarilganligini kafolatlaydi. iOS tekshiradi: Apple Root CA ildiz sertifikati (mikrodasturga o'rnatilgan), Apple Worldwide Developer Relations CA oraliq sertifikati, dasturchi sertifikati. Agar zanjirning biron bir elementi bo'lmasa yoki haqiqiy bo'lmasa, iOS ilovani ishga tushirishni code signing xatosi bilan bloklaydi. macOS kalitlar to'plamidagi istalgan sertifikatning ishonch zanjirini tekshirish uchun security yordamchi dasturini taqdim etadi.
Apple Certificate yordamida kod imzolash jarayoni asimmetrik kriptografiyaga asoslangan. Maxfiy kalit (private key) dasturchining kompyuterida Keychain'da saqlanadi, ochiq kalit (public key) esa sertifikatga kiritiladi va Apple Developer Portal'ga yuboriladi. Xcode ilovani imzolaganda, ikkilik faylning xeshini (hash) yaratadi va uni maxfiy kalit bilan shifrlaydi — bu raqamli imzo. Qurilma imzoni sertifikatdagi ochiq kalit bilan deshifrlaydi va hisoblangan xesh bilan solishtiradi.
Apple 2021 yildan keyin chiqarilgan barcha sertifikatlar uchun ECDSA (Elliptic Curve Digital Signature Algorithm) algoritmidan P-256 egri chizig'i bilan foydalanadi. Ilgari RSA-2048 ishlatilgan. ECDSA'ga o'tish qurilmalarda imzo tekshirish tezligini oshirdi va imzo hajmini kamaytirdi — mobil ilovalar uchun bu ayniqsa muhim, chunki imzo tekshiruvi har bir ishga tushirishda amalga oshiriladi. Apple Security Engineering (2025) ma'lumotlariga ko'ra, ECDSA P-256 sezilarli darajada kam hisoblash xarajatlari bilan RSA-2048 ga ekvivalent xavfsizlik darajasini ta'minlaydi.
CI/CD jarayonlari uchun sertifikat maxfiy kalit bilan birgalikda PKCS12 (.p12) formatiga eksport qilinishi va himoyalangan omborda saqlanishi kerak. GitHub Actions, Bitrise, Jenkins va boshqa CI tizimlari sertifikatlarni atrof-muhit o'zgaruvchilari yoki sirlar orqali import qilishni qo'llab-quvvatlaydi. CI agentiga import qilingandan so'ng, sertifikat vaqtincha kalitlar to'plamiga qo'shiladi, imzolash uchun ishlatiladi va o'chiriladi. Fastlane Match bu jarayonni avtomatlashtiradi, sertifikatlarni dasturchilar o'rtasida shifrlangan git repozitoriyasi orqali sinxronlashtiradi.
Development sertifikati ilovalarni dasturchining fizik qurilmalarida ishga tushirish uchun imzolash imkonini beradi. Uni olish uchun bepul Apple ID hisobi yetarli — Xcode Development sertifikatini avtomatik yaratishi mumkin. Distribution sertifikati faqat pullik Apple Developer Program hisoblari ($99/yil) uchun chiqariladi va App Store'ga ilova yuborish, Ad Hoc tarqatish yoki Enterprise tarqatish uchun talab qilinadi. Bitta hisobda bir nechta Distribution sertifikati bo'lishi mumkin — masalan, har bir ilova yoki turli jamoalar uchun alohida.
Apple Developer Portal har biri ma'lum bir vazifa uchun mo'ljallangan bir necha turdagi sertifikatlarni taqdim etadi. iOS App Development — ishlanma bosqichida ilovalarni imzolash uchun asosiy sertifikat. Apple Distribution — App Store'da nashr etish uchun asosiy sertifikat. Mac Development va Mac Distribution — macOS ilovalari uchun analoglar. Har bir sertifikat turi uchun Apple Developer Portal'da alohida so'rov (CSR) mavjud.
Alohida toifani push bildirishnomalari uchun sertifikatlar tashkil etadi. Apple Push Notification service (APNs) yo alohida SSL sertifikati yoki autentifikatsiya tokenlaridan (APNs Auth Key) foydalanishni talab qiladi. APNs SSL sertifikatlari Development (Sandbox) va Production muhitlari uchun alohida chiqariladi va ma'lum bir App ID'ga bog'lanadi. APNs Auth Key — zamonaviyroq yondashuv: bitta kalit (.p8) hisobning barcha ilovalariga xizmat qiladi, bu boshqaruvni soddalashtiradi.
| Sertifikat turi | Vazifasi | Amal qilish muddati |
|---|---|---|
| iOS App Development | Qurilmalarda sinash uchun imzo | 1 yil |
| Apple Distribution | App Store'da nashr va Ad Hoc | 1 yil |
| Mac Development | Ishlanma uchun macOS ilovalarini imzolash | 1 yil |
| Mac Distribution | Mac App Store'da nashr | 1 yil |
| APNs SSL (Sandbox) | Sinov muhitida push bildirishnomalari | 1-3 yil |
| APNs SSL (Production) | Ishlab chiqarish muhitida push bildirishnomalari | 1-3 yil |
Apple Certificate'ni yaratish macOS'da Keychain Access orqali sertifikat imzolash so'rovini (Certificate Signing Request, CSR) yaratish bilan boshlanadi. Keychain Access kalit juftligini yaratadi: maxfiy kalit to'plamda qoladi, CSR esa Apple Developer Portal'ga yuboriladi. Shaxs tasdiqlangandan so'ng, Apple CSR'ni imzolaydi va tayyor sertifikatni (.cer) chiqaradi, uni yuklab olib ikki marta bosish orqali o'rnatish kerak.
Bir nechta loyiha va jamoalarni boshqarish uchun Apple turli Team ID'lar uchun sertifikatlar yaratish imkonini beradi. Bitta dasturchi bir nechta jamoaning a'zosi bo'lishi mumkin (Apple Developer Program — App Store Connect orqali) va har bir jamoa uchun alohida sertifikatlar chiqariladi. Xcode Signing & Capabilities sozlamalarida tanlangan jamoaga qarab sertifikatlarni avtomatik almashtiradi.
Sertifikatni bekor qilish (revokatsiya) muhim operatsiya: ushbu sertifikat bilan imzolangan barcha ilovalar yangi qurilmalarga o'rnatilmaydi (allaqachon o'rnatilganlar ishlashda davom etadi). Apple Developer Portal Certificates bo'limida istalgan sertifikatni bekor qilish imkonini beradi. Bekor qilish sabablari: maxfiy kalitning buzilishi, dasturchining jamoadan ketishi, Apple Developer Program shartlarini buzish. Bekor qilingandan so'ng, yangi sertifikat chiqarish va barcha faol bildlarni qayta imzolash kerak.
Keychain (kalitlar to'plami) — sertifikatlar, maxfiy kalitlar va parollar uchun macOS tizim ombori. Barcha Apple sertifikatlari va tegishli maxfiy kalitlar foydalanuvchining kirish kalitlar to'plamida (login.keychain) saqlanadi. Xcode kod imzolashda Keychain'ga murojaat qiladi, qurilish turiga qarab mos sertifikatni avtomatik tanlaydi. Imzo muammolarini diagnostika qilish uchun o'rnatilgan Keychain Access yordamchi dasturidan (papka /Applications/Utilities) foydalanish qulay.
CI/CD uchun sertifikatni eksport qilish Keychain Access orqali amalga oshiriladi: sertifikat va tegishli maxfiy kalitni tanlang (ular bir qatorda kengaytirilgan bo'lishi kerak), o'ng tugma bosing va Export ni tanlang. Format — PKCS12 (.p12). Eksport paytida Keychain faylni himoya qilish uchun parol so'raydi — bu parol CI serverida import qilishda kerak bo'ladi. Maxfiy kalitsiz eksport qilingan sertifikat imzolash uchun foydasiz — u faqat allaqachon imzolangan kodni tekshirish uchun ishlatilishi mumkin.
security yordamchi dasturidan foydalanib CI agentining kalitlar to'plamiga sertifikat import qilish uchun misol buyruq:
# Vaqtinchalik kalitlar to'plamini yaratish
security create-keychain -p "temp" build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p "temp" build.keychain
# Sertifikatni .p12 dan import qilish
security import certificate.p12 -k build.keychain \
-P "${P12_PASSWORD}" -T /usr/bin/codesign
# Imzolash siyosatini sozlash
security set-key-partition-list -S apple: -s \
-k "temp" build.keychain
Security create-keychain foydalanuvchidan ajratilgan vaqtinchalik kalitlar to'plamini yaratadi. Bu CI uchun muhim, chunki agentning tizim kalitlar to'plamini ifloslantirmaslik kerak. -T /usr/bin/codesign bayrog'i codesign yordamchi dasturiga parol so'ramasdan kalitlarga kirishga ruxsat beradi — aks holda pipeline'da avtomatik imzolash dialog oynasi bilan to'xtaydi. set-key-partition-list buyrug'i macOS ning avtomatik rejimda kod imzolash talablariga muvofiqlik uchun zarur.
Eng keng tarqalgan xato — Xcode'da qurish paytida “No signing certificate found” xatosi. Keychain'da tanlangan qurilish turiga mos maxfiy kalitli sertifikat bo'lmaganda yuz beradi. Yechim: Keychain Access'da sertifikat mavjudligini tekshiring, uni Apple Developer Portal'dan yuklab oling va o'rnating. Agar maxfiy kalit yo'qolgan bo'lsa (eski kompyuter, tizimni qayta o'rnatish), eski sertifikatni bekor qilish va yangisini chiqarish kerak.
CI/CD da “Valid signing certificate not found” xatosi agentda Apple oraliq sertifikatlari (Apple Worldwide Developer Relations CA) o'rnatilmaganda yuz beradi. Apple dasturchi sertifikatini yuklab olishda oraliq sertifikatlarni zanjirga qo'shadi, lekin .p12 ni qo'lda eksport qilishda ular bo'lmasligi mumkin. Yechim — Apple Certificate Authority saytidan oraliq sertifikatlarni yuklab oling va CI agentining kalitlar to'plamiga o'rnating.
Muddati o'tgan sertifikat muammosi imzolash paytida “This certificate has an invalid issuer” xatosi bilan namoyon bo'ladi. Apple Developer Portal har bir sertifikatning holati va tugash sanasini ko'rsatadi. Agar ilova allaqachon App Store'da muddati o'tgan sertifikat bilan nashr etilgan bo'lsa, u ishlashda davom etadi — App Store tarqatish uchun o'zining Apple sertifikatidan foydalanadi. Biroq, yangi bildni yuklash uchun amaldagi Distribution sertifikati talab qilinadi. Fastlane sertifikatlarni avtomatik yaratish va yangilash uchun cert buyrug'ini o'z ichiga oladi.
Tez-tez so'raladigan savollar
Yo'q, iOS va macOS uchun har xil turdagi sertifikatlar chiqariladi — iOS App Development va Mac Development. Apple Distribution sertifikati ham platformalarga bo'linadi. Apple Developer Portal'da sertifikat yaratishda maqsadli platformani ko'rsatish kerak — barcha platformalar uchun universal sertifikat mavjud emas.
Eski sertifikatni Apple Developer Portal'da Certificates, Identifiers & Profiles orqali bekor qilish kerak. Keyin Keychain Access orqali yangi CSR yarating va yangi sertifikat chiqaring. Barcha eski sertifikat bilan imzolangan ilovalar, agar yangilanish chiqarish kerak bo'lsa, qayta imzolash va App Store'ga qayta yuklashni talab qiladi.
Bitta Apple Developer Program hisobi uchun bir vaqtning o'zida ikkitadan ko'p bo'lmagan Distribution sertifikati va cheksiz miqdordagi Development sertifikatiga ruxsat beriladi. Enterprise hisoblarining alohida cheklovlari bor. Agar Distribution sertifikatlari chegarasiga yetilgan bo'lsa, yangisini yaratishdan oldin mavjudlaridan birini bekor qilish kerak.
security yordamchi dasturidan foydalaning: security find-identity -v -p basic kalitlar to'plamidagi barcha sertifikatlarni tugash sanalari bilan ro'yxatlaydi. Muayyan sertifikat uchun uning SHA-1 xeshini ko'rsating: security find-certificate -c “Developer” -p | openssl x509 -noout -enddate.
Ha, sertifikatlar ma'lum bir Apple Developer hisobiga (Team ID) bog'langan. Hisob o'zgartirilganda, eski sertifikatlar yangi Team ID uchun haqiqiy emas bo'ladi. Xcode Accounts Preferences da hisob o'zgartirilganda avtomatik ravishda yangi jamoa uchun yangi sertifikatlar yaratilishini so'raydi.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.