Apple Certificate হল একটি ডিজিটাল ডকুমেন্ট যা Apple Developer Portal দ্বারা iOS, iPadOS, macOS, tvOS এবং watchOS-এর অধীনে অ্যাপ্লিকেশনের কোড সাইনিং-এর জন্য জারি করা হয়। Apple Developer Support, 2026 অনুযায়ী, সার্টিফিকেটগুলি পাবলিক কী ইনফ্রাস্ট্রাকচারের (PKI) অংশ এবং ডেভেলপারের পরিচয় নিশ্চিত করার জন্য প্রয়োজনীয়। এই নিবন্ধে আমরা সার্টিফিকেটের ধরন, সেগুলি তৈরি এবং পরিচালনার প্রক্রিয়া নিয়ে আলোচনা করব।
মূল বিষয়
Apple Certificate হল X.509 ফরম্যাটের একটি ক্রিপ্টোগ্রাফিক সার্টিফিকেট যা Apple সার্টিফিকেট অথরিটি (Apple Certificate Authority) দ্বারা জারি করা হয়। এটি নিশ্চিত করে যে এর ধারক Apple Developer Program-এর একজন নিবন্ধিত সদস্য এবং Apple ইকোসিস্টেমের জন্য অ্যাপ্লিকেশন সাইন করার অধিকার রাখে। সার্টিফিকেটটিতে একটি পাবলিক কী, মালিকের মেটাডেটা এবং Apple CA-এর ডিজিটাল স্বাক্ষর থাকে — যে কেউ অপারেটিং সিস্টেমে তৈরি Apple রুট সার্টিফিকেট ব্যবহার করে সার্টিফিকেটের প্রামাণিকতা যাচাই করতে পারে।
Apple-এর PKI আর্কিটেকচারে তিনটি স্তর রয়েছে: Apple Root CA, ইন্টারমিডিয়েট সার্টিফিকেট (Apple Worldwide Developer Relations CA) এবং ডেভেলপার সার্টিফিকেট। Apple Worldwide Developer Relations CA সমস্ত ডেভেলপার সার্টিফিকেট সাইন করে — যদি এই ইন্টারমিডিয়েট সার্টিফিকেট বিশ্বাস চেইনে অনুপস্থিত থাকে, কোড স্বাক্ষর অবৈধ বলে গণ্য হয়। Apple রুট সার্টিফিকেটগুলি iOS এবং macOS-এ নির্মিত Apple Trust Store প্রক্রিয়ার মাধ্যমে স্বয়ংক্রিয়ভাবে আপডেট হয়।
প্রতিটি সার্টিফিকেটের একটি বৈধতা সময়কাল থাকে — প্রকারের উপর নির্ভর করে এক থেকে তিন বছর পর্যন্ত। Apple Developer Program ইমেল এবং পুশ নোটিফিকেশনের মাধ্যমে সার্টিফিকেটের মেয়াদ শেষ হওয়ার 30 দিন আগে স্বয়ংক্রিয়ভাবে ডেভেলপারকে জানায়। মেয়াদ শেষ হওয়ার পরে, পুরানো সার্টিফিকেট নতুন বিল্ড সাইন করতে ব্যবহার করা যায় না — একটি নতুন জারি করতে হবে; তবে, মেয়াদোত্তীর্ণ সার্টিফিকেট দিয়ে সাইন করা অ্যাপ্লিকেশন ব্যবহারকারীদের ডিভাইসে কাজ চালিয়ে যায়।
বিশ্বাস চেইন নিশ্চিত করে যে ডেভেলপার সার্টিফিকেট প্রকৃতপক্ষে Apple দ্বারা জারি করা হয়েছিল। iOS যাচাই করে: Apple Root CA সার্টিফিকেট (ফার্মওয়্যারে নির্মিত), ইন্টারমিডিয়েট Apple Worldwide Developer Relations CA সার্টিফিকেট এবং ডেভেলপার সার্টিফিকেট। যদি চেইনের কোনো উপাদান অনুপস্থিত বা অবৈধ হয়, iOS কোড সাইনিং ত্রুটির সাথে অ্যাপ্লিকেশন লঞ্চ ব্লক করে। macOS কীচেইনের যেকোনো সার্টিফিকেটের বিশ্বাস চেইন পরীক্ষা করার জন্য security ইউটিলিটি প্রদান করে।
Apple Certificate ব্যবহার করে কোড সাইনিং প্রক্রিয়া অ্যাসিমেট্রিক ক্রিপ্টোগ্রাফির উপর ভিত্তি করে। প্রাইভেট কী ডেভেলপারের কম্পিউটারে Keychain-এ সংরক্ষিত থাকে, যখন পাবলিক কী সার্টিফিকেটে অন্তর্ভুক্ত করা হয় এবং Apple Developer Portal-এ পাঠানো হয়। যখন Xcode একটি অ্যাপ্লিকেশন সাইন করে, এটি বাইনারি ফাইলের একটি ডাইজেস্ট (হ্যাশ) তৈরি করে এবং প্রাইভেট কী দিয়ে এটি এনক্রিপ্ট করে — এটি ডিজিটাল স্বাক্ষর। ডিভাইসটি সার্টিফিকেট থেকে পাবলিক কী ব্যবহার করে স্বাক্ষর ডিক্রিপ্ট করে এবং গণনা করা হ্যাশের সাথে তুলনা করে।
Apple 2021-এর পরে জারি করা সমস্ত সার্টিফিকেটের জন্য P-256 কার্ভ সহ ECDSA (Elliptic Curve Digital Signature Algorithm) অ্যালগরিদম ব্যবহার করে। আগে RSA-2048 ব্যবহার করা হত। ECDSA-তে রূপান্তর ডিভাইসে স্বাক্ষর যাচাইয়ের গতি বাড়িয়েছে এবং স্বাক্ষরের আকার কমিয়েছে — এটি মোবাইল অ্যাপ্লিকেশনের জন্য বিশেষভাবে গুরুত্বপূর্ণ, কারণ প্রতিটি লঞ্চে স্বাক্ষর যাচাই করা হয়। Apple Security Engineering (2025) অনুযায়ী, ECDSA P-256 উল্লেখযোগ্যভাবে কম গণনামূলক খরচে RSA-2048-এর সমতুল্য নিরাপত্তা স্তর প্রদান করে।
CI/CD প্রক্রিয়ার জন্য, সার্টিফিকেটটি প্রাইভেট কী সহ PKCS12 (.p12)-এ এক্সপোর্ট করতে হবে এবং একটি সুরক্ষিত ভান্ডারে সংরক্ষণ করতে হবে। GitHub Actions, Bitrise, Jenkins এবং অন্যান্য CI সিস্টেম এনভায়রনমেন্ট ভেরিয়েবল বা সিক্রেটের মাধ্যমে সার্টিফিকেট ইম্পোর্ট সমর্থন করে। CI এজেন্টে ইম্পোর্টের পরে, সার্টিফিকেটটি অস্থায়ীভাবে কীচেইনে যোগ করা হয়, সাইন করার জন্য ব্যবহৃত হয় এবং মুছে ফেলা হয়। Fastlane Match একটি এনক্রিপ্টেড git রিপোজিটরির মাধ্যমে ডেভেলপারদের মধ্যে সার্টিফিকেট সিঙ্ক্রোনাইজ করে এই প্রক্রিয়াটি স্বয়ংক্রিয় করে।
Development সার্টিফিকেট ডেভেলপারের ফিজিক্যাল ডিভাইসে চালানোর জন্য অ্যাপ্লিকেশন সাইন করার অনুমতি দেয়। এটি পেতে একটি বিনামূল্যের Apple ID অ্যাকাউন্ট যথেষ্ট — Xcode স্বয়ংক্রিয়ভাবে Development সার্টিফিকেট জেনারেট করতে পারে। Distribution সার্টিফিকেট শুধুমাত্র পেইড Apple Developer Program অ্যাকাউন্টের ($99/বছর) জন্য জারি করা হয় এবং App Store-এ অ্যাপ সাবমিট করতে, Ad Hoc বিতরণ বা Enterprise বিতরণের জন্য প্রয়োজন। একটি অ্যাকাউন্টে একাধিক Distribution সার্টিফিকেট থাকতে পারে — উদাহরণস্বরূপ, প্রতিটি অ্যাপ্লিকেশনের জন্য আলাদা বা বিভিন্ন টিমের জন্য।
Apple Developer Portal বিভিন্ন ধরনের সার্টিফিকেট প্রদান করে, প্রতিটি একটি নির্দিষ্ট উদ্দেশ্যের জন্য ডিজাইন করা। iOS App Development — ডেভেলপমেন্টের সময় অ্যাপ্লিকেশন সাইন করার জন্য বেসিক সার্টিফিকেট। Apple Distribution — App Store-এ প্রকাশনার জন্য প্রধান সার্টিফিকেট। Mac Development এবং Mac Distribution — macOS অ্যাপ্লিকেশনের জন্য অনুরূপ। প্রতিটি সার্টিফিকেট প্রকারের জন্য Apple Developer Portal-এ একটি পৃথক অনুরোধ (CSR) প্রয়োজন।
একটি পৃথক বিভাগ হল পুশ নোটিফিকেশনের জন্য সার্টিফিকেট। Apple Push Notification service (APNs)-এর জন্য হয় একটি পৃথক SSL সার্টিফিকেট বা প্রমাণীকরণ টোকেন (APNs Auth Key) ব্যবহার করা প্রয়োজন। APNs SSL সার্টিফিকেট Development (Sandbox) এবং Production পরিবেশের জন্য আলাদাভাবে জারি করা হয় এবং একটি নির্দিষ্ট App ID-এর সাথে আবদ্ধ থাকে। APNs Auth Key একটি আরও আধুনিক পদ্ধতি: একটি কী (.p8) অ্যাকাউন্টের সমস্ত অ্যাপ্লিকেশন পরিবেশন করে, পরিচালনাকে সহজ করে।
| সার্টিফিকেটের ধরন | উদ্দেশ্য | বৈধতা |
|---|---|---|
| iOS App Development | ডিভাইসে পরীক্ষার জন্য সাইনিং | ১ বছর |
| Apple Distribution | App Store এবং Ad Hoc-এ প্রকাশনা | ১ বছর |
| Mac Development | macOS অ্যাপ ডেভেলপমেন্টের জন্য সাইনিং | ১ বছর |
| Mac Distribution | Mac App Store-এ প্রকাশনা | ১ বছর |
| APNs SSL (Sandbox) | পরীক্ষার পরিবেশে পুশ নোটিফিকেশন | ১-৩ বছর |
| APNs SSL (Production) | প্রোডাকশনে পুশ নোটিফিকেশন | ১-৩ বছর |
Apple Certificate তৈরি করা শুরু হয় macOS-এ Keychain Access-এর মাধ্যমে সার্টিফিকেট সাইনিং রিকোয়েস্ট (CSR) জেনারেট করার মাধ্যমে। 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 (কীচেইন) হল সার্টিফিকেট, প্রাইভেট কী এবং পাসওয়ার্ডের জন্য macOS সিস্টেম স্টোরেজ। সমস্ত Apple সার্টিফিকেট এবং সংশ্লিষ্ট প্রাইভেট কীগুলি ব্যবহারকারীর লগইন কীচেইনে (login.keychain) সংরক্ষিত থাকে। কোড সাইন করার সময় Xcode Keychain-এ অ্যাক্সেস করে, বিল্ড প্রকারের উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে উপযুক্ত সার্টিফিকেট নির্বাচন করে। সাইনিং সমস্যা নির্ণয়ের জন্য, বিল্ট-ইন Keychain Access ইউটিলিটি (/Applications/Utilities) ব্যবহার করা উপযোগী।
CI/CD-র জন্য সার্টিফিকেট এক্সপোর্ট Keychain Access-এর মাধ্যমে করা হয়: সার্টিফিকেট এবং সংশ্লিষ্ট প্রাইভেট কী নির্বাচন করুন (এগুলি এক সারিতে প্রসারিত হওয়া উচিত), ডান-ক্লিক করুন এবং Export নির্বাচন করুন। ফরম্যাট হল PKCS12 (.p12)। এক্সপোর্টের সময়, Keychain ফাইলটি সুরক্ষিত করতে একটি পাসওয়ার্ড চাইবে — CI সার্ভারে ইম্পোর্ট করার সময় এই পাসওয়ার্ডটির প্রয়োজন হবে। প্রাইভেট কী ছাড়া, এক্সপোর্ট করা সার্টিফিকেট সাইন করার জন্য অকেজো — এটি শুধুমাত্র ইতিমধ্যে সাইন করা কোড যাচাই করতে ব্যবহার করা যেতে পারে।
security ইউটিলিটি ব্যবহার করে CI এজেন্টের কীচেইনে সার্টিফিকেট ইম্পোর্ট করার উদাহরণ কমান্ড:
# অস্থায়ী কীচেইন তৈরি
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-র জন্য এটি গুরুত্বপূর্ণ যাতে এজেন্টের সিস্টেম কীচেইন দূষিত না হয়। -T /usr/bin/codesign ফ্ল্যাগ codesign ইউটিলিটিকে পাসওয়ার্ড না চেয়ে কী অ্যাক্সেস করার অনুমতি দেয় — অন্যথায় পাইপলাইনে স্বয়ংক্রিয় সাইনিং একটি ডায়ালগ দ্বারা বাধাগ্রস্ত হবে। set-key-partition-list কমান্ডটি স্বয়ংক্রিয় মোডে macOS কোড সাইনিং প্রয়োজনীয়তার সাথে সামঞ্জস্যের জন্য প্রয়োজনীয়।
সবচেয়ে সাধারণ ত্রুটি হল Xcode-এ বিল্ড করার সময় “No signing certificate found”। এটি ঘটে যখন Keychain-এ নির্বাচিত বিল্ড প্রকারের সাথে মেলে এমন প্রাইভেট কী সহ একটি সার্টিফিকেট থাকে না। সমাধান: সার্টিফিকেটের জন্য Keychain Access পরীক্ষা করুন, এটি Apple Developer Portal থেকে ডাউনলোড করুন এবং ইনস্টল করুন। যদি প্রাইভেট কী হারিয়ে যায় (পুরানো কম্পিউটার, সিস্টেম পুনরায় ইনস্টল), পুরানো সার্টিফিকেট প্রত্যাহার করতে হবে এবং একটি নতুন জারি করতে হবে।
CI/CD-তে “Valid signing certificate not found” ত্রুটিটি ঘটে যখন এজেন্টে Apple-এর ইন্টারমিডিয়েট সার্টিফিকেট (Apple Worldwide Developer Relations CA) ইনস্টল করা না থাকে। Apple ডেভেলপার সার্টিফিকেট ডাউনলোড করার সময় চেইনে ইন্টারমিডিয়েট সার্টিফিকেট অন্তর্ভুক্ত করে, কিন্তু ম্যানুয়ালি .p12 এক্সপোর্ট করার সময় সেগুলি অনুপস্থিত থাকতে পারে। সমাধান — Apple Certificate Authority ওয়েবসাইট থেকে ইন্টারমিডিয়েট সার্টিফিকেট ডাউনলোড করুন এবং CI এজেন্টের কীচেইনে ইনস্টল করুন।
মেয়াদোত্তীর্ণ সার্টিফিকেট সমস্যাটি সাইন করার সময় “This certificate has an invalid issuer” ত্রুটি হিসাবে প্রকাশ পায়। Apple Developer Portal প্রতিটি সার্টিফিকেটের অবস্থা এবং মেয়াদ শেষ হওয়ার তারিখ দেখায়। যদি একটি অ্যাপ্লিকেশন ইতিমধ্যে একটি মেয়াদোত্তীর্ণ সার্টিফিকেট সহ App Store-এ প্রকাশিত হয়, তবে এটি কাজ করতে থাকে — App Store বিতরণের জন্য Apple-এর নিজস্ব সার্টিফিকেট ব্যবহার করে। তবে, একটি নতুন বিল্ড আপলোড করতে একটি বৈধ Distribution সার্টিফিকেট প্রয়োজন। Fastlane-এ সার্টিফিকেট স্বয়ংক্রিয়ভাবে তৈরি এবং নবায়নের জন্য cert কমান্ড অন্তর্ভুক্ত রয়েছে।
সচরাচর জিজ্ঞাস্য
না, iOS এবং macOS-এর জন্য বিভিন্ন ধরনের সার্টিফিকেট জারি করা হয় — iOS App Development এবং Mac Development। Apple Distribution সার্টিফিকেটও প্ল্যাটফর্ম অনুযায়ী পৃথক করা হয়েছে। Apple Developer Portal-এ সার্টিফিকেট তৈরি করার সময়, আপনাকে লক্ষ্য প্ল্যাটফর্ম উল্লেখ করতে হবে — সমস্ত প্ল্যাটফর্মের জন্য কোনো সার্বজনীন সার্টিফিকেট বিদ্যমান নেই।
আপনাকে Certificates, Identifiers & Profiles-এর মাধ্যমে Apple Developer Portal-এ পুরানো সার্টিফিকেট প্রত্যাহার করতে হবে। তারপর Keychain Access-এর মাধ্যমে একটি নতুন CSR তৈরি করুন এবং একটি নতুন সার্টিফিকেট জারি করুন। পুরানো সার্টিফিকেট দিয়ে সাইন করা সমস্ত অ্যাপ্লিকেশনকে পুনরায় সাইন করতে হবে এবং App Store-এ পুনরায় আপলোড করতে হবে যদি একটি আপডেট প্রকাশ করার প্রয়োজন হয়।
একটি Apple Developer Program অ্যাকাউন্ট একসাথে সর্বাধিক দুটি Distribution সার্টিফিকেট এবং সীমাহীন সংখ্যক Development সার্টিফিকেটের অনুমতি দেয়। Enterprise অ্যাকাউন্টগুলির পৃথক সীমা রয়েছে। যদি Distribution সার্টিফিকেটের সীমা পৌঁছে যায়, নতুন তৈরি করার আগে বিদ্যমান সার্টিফিকেটগুলির একটি প্রত্যাহার করতে হবে।
security ইউটিলিটি ব্যবহার করুন: security find-identity -v -p basic মেয়াদ শেষ হওয়ার তারিখ সহ কীচেইনের সমস্ত সার্টিফিকেট তালিকাভুক্ত করে। একটি নির্দিষ্ট সার্টিফিকেটের জন্য, এর SHA-1 হ্যাশ উল্লেখ করুন: security find-certificate -c “Developer” -p | openssl x509 -noout -enddate.
হ্যাঁ, সার্টিফিকেটগুলি একটি নির্দিষ্ট Apple Developer অ্যাকাউন্টের (Team ID) সাথে আবদ্ধ। অ্যাকাউন্ট পরিবর্তন করলে, পুরানো সার্টিফিকেটগুলি নতুন Team ID-র জন্য অবৈধ হয়ে যায়। Xcode, Accounts Preferences-এ অ্যাকাউন্ট পরিবর্তন করার সময়, নতুন টিমের জন্য স্বয়ংক্রিয়ভাবে নতুন সার্টিফিকেট তৈরির অনুরোধ করে।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন