Microsoft Management Console (MMC)-এর Certificates স্ন্যাপ-ইন কোনো অতিরিক্ত সফটওয়্যার ছাড়াই Windows মেশিনে একটি PKCS #10 certificate request তৈরি করতে পারে। এই গাইডে একটি code signing certificate-এর জন্য সেই উইজার্ডটি স্ক্রিন ধরে ধরে ব্যাখ্যা করা হয়েছে, এবং এটি শুরু হচ্ছে সেই অংশ দিয়ে যা বেশিরভাগ পুরনো নির্দেশিকা বাদ দিয়ে যায়: কোড সাইনিং প্রাইভেট কী-এর নিয়ম জুন ১, ২০২৩ তারিখে পরিবর্তিত হয়েছে, এবং এটাই নির্ধারণ করে যে MMC-এর তৈরি করা রিকোয়েস্ট আদৌ ব্যবহারযোগ্য কি না।
উইজার্ড খোলার আগে এই প্রয়োজনীয়তা পড়ে নিন। গাইডের বাকি অংশ ধরে নেয় যে আপনি জানেন আপনার অর্ডার কোন পথে যাবে।
কোড সাইনিং কী অবশ্যই হার্ডওয়্যারে তৈরি করতে হবে
CA/Browser Forum Code Signing Baseline Requirements-এর অধীনে, যা জুন ১, ২০২৩ থেকে কার্যকর, প্রতিটি প্রকাশ্যে বিশ্বস্ত (publicly trusted) কোড সাইনিং সার্টিফিকেটের প্রাইভেট কী অবশ্যই কমপক্ষে FIPS 140-2 Level 2, Common Criteria EAL 4+, অথবা সমতুল্য একটি মানের হার্ডওয়্যার ক্রিপ্টো মডিউলে তৈরি, সংরক্ষণ এবং ব্যবহার করতে হবে। এটি স্ট্যান্ডার্ড সার্টিফিকেট (Organization Validation এবং Individual Validation) এবং Extended Validation উভয়কেই কভার করে। EV code signing ইতিমধ্যেই এভাবে কাজ করত; ২০২৩ সালের পরিবর্তন একই নিয়মকে স্ট্যান্ডার্ড পণ্যগুলোর ক্ষেত্রেও সম্প্রসারিত করেছে।
প্রয়োজনীয়তাগুলো কী নিজেও নির্দিষ্ট করে দেয়। RSA কী অবশ্যই কমপক্ষে 3072 বিট হতে হবে, ECDSA কী অবশ্যই NIST P-256, P-384 অথবা P-521 ব্যবহার করতে হবে, এবং কোড সাইনিং সার্টিফিকেটের জন্য SHA-1 অনুমোদিত নয়।
এটাও সমান গুরুত্বপূর্ণ যে, Certificate Authority-কে প্রমাণ করতে হয় যে কী আসলেই হার্ডওয়্যারে রয়েছে, প্রয়োজনীয়তায় তালিকাভুক্ত পদ্ধতিগুলোর একটি ব্যবহার করে। বাস্তবে আপনি যেগুলোর মুখোমুখি হবেন সেগুলো হলো:
- CA আপনাকে একটি হার্ডওয়্যার টোকেন পাঠায় যাতে ইতিমধ্যে CA-এর সেই ডিভাইসে তৈরি করা একটি কী পেয়ার থাকে।
- আপনি নির্মাতার (manufacturer) একটি সার্টিফিকেট দিয়ে রিকোয়েস্টটি কাউন্টার-সাইন করেন, যেটাই হলো key attestation-এর অর্থ: প্রমাণ যে কী একটি সম্মত ডিভাইসের ভেতরে অ-রপ্তানিযোগ্য (non-exportable) পদ্ধতিতে তৈরি হয়েছে।
- আপনি এমন একটি ক্রিপ্টো লাইব্রেরি এবং হার্ডওয়্যার মডিউল সমন্বয় ব্যবহার করেন যা CA নির্ধারণ করে দেয়।
- আপনি একটি IT অডিট, একটি ক্লাউড কী প্রোটেকশন সার্ভিসের রিপোর্ট, অথবা একটি সম্মত সাইনিং সার্ভিসের মাধ্যমে স্বাক্ষরিত একটি চুক্তি সরবরাহ করেন।
MMC যদি Microsoft Software Key Storage Provider-এর বিরুদ্ধে একটি রিকোয়েস্ট তৈরি করে, তাহলে উপরের কোনোটিই পূরণ হয় না। সেই প্রোভাইডার Windows সফটওয়্যার স্টোরেজে কী তৈরি করে, তাই বাকি উইজার্ড যেভাবেই পূরণ করা হোক না কেন, ফলাফল হিসেবে তৈরি রিকোয়েস্ট প্রকাশ্যে বিশ্বস্ত কোড সাইনিং সার্টিফিকেটের জন্য প্রত্যাখ্যাত হবে। Certificate Authority-রা একই সময়ে এই পণ্যগুলোর জন্য ব্রাউজার-ভিত্তিক কী জেনারেশন এবং ডাউনলোডযোগ্য .pfx ডেলিভারি দেওয়াও বন্ধ করে দিয়েছে।
যদি আপনার লক্ষ্য একটি প্রকাশ্যে বিশ্বস্ত সার্টিফিকেট হয়, তাহলে অর্ডার করার সময়ই পথ নির্ধারিত হয়ে যায়। হয় CA একটি টোকেনে কী তৈরি করে সেটি আপনাকে মেইল করে, যে ক্ষেত্রে আপনার তৈরি করার মতো কোনো CSR থাকে না, অথবা আপনি ইতিমধ্যে থাকা হার্ডওয়্যারে কী তৈরি করেন এবং রিকোয়েস্টের সাথে একটি অ্যাটেস্টেশন জমা দেন। code signing certificate delivery methods গাইডে এই দুইটি তুলনা করা হয়েছে, এবং ডিভাইস-নির্দিষ্ট ধাপগুলো এখানে দেওয়া আছে:
- YubiKey 5 FIPS: CSR জেনারেশন এবং অ্যাটেস্টেশন
- Luna Network Attached HSM v7.x: CSR এবং অ্যাটেস্টেশন গাইড
যেখানে MMC এখনও উপযুক্ত
উইজার্ডটি অপ্রচলিত নয়। আপনি এর ভেতরে যে প্রোভাইডার বেছে নেন সেটিই নির্ধারণ করে কী কোথায় তৈরি হয়, এবং তিনটি পরিস্থিতি আছে যেখানে এটি এখনও সঠিক টুল থেকে যায়।
হার্ডওয়্যার প্রোভাইডার দ্বারা সমর্থিত একটি রিকোয়েস্ট। উইজার্ডে থাকা Cryptographic Service Provider তালিকায় মেশিনে ইনস্টল করা প্রতিটি প্রোভাইডার দেখা যায়, শুধু Microsoft-এর সফটওয়্যার প্রোভাইডারগুলো নয়। একবার কোনো টোকেনের ড্রাইভার বা স্মার্ট কার্ড মিনিড্রাইভার ইনস্টল হয়ে গেলে, তার প্রোভাইডারও সেখানে দেখা যাবে। পার্থক্যটা হলো কী পেয়ার কোথায় জন্ম নেয়: একটি সফটওয়্যার প্রোভাইডার এটি আপনার কম্পিউটারে তৈরি করে, অন্যদিকে হার্ডওয়্যার-ভিত্তিক প্রোভাইডার, যেমন একটি স্মার্ট কার্ড বা টোকেন প্রোভাইডার, ডিভাইসকে পেয়ার তৈরি করার নির্দেশ দেয়, এবং ডিভাইসটিই তখন প্রাইভেট কী ধারণ করে এবং এর অ্যাক্সেস নিয়ন্ত্রণ করে। একটি হার্ডওয়্যার প্রোভাইডার নির্বাচন করুন এবং MMC এমন একটি কী-এর জন্য একটি রিকোয়েস্ট তৈরি করবে যা কখনও সফটওয়্যারে বিদ্যমান ছিল না।
এর উপর নির্ভর করার আগে দুটি সতর্কতা মনে রাখুন। MMC শুধুমাত্র একটি PKCS #10 রিকোয়েস্ট তৈরি করে, আর কিছু নয়, তাই এটি সেই key attestation ফাইল তৈরি করে না যা বেশিরভাগ Certificate Authority এর পাশাপাশি চায়। সেটি আসে ডিভাইসের নিজস্ব টুলিং থেকে। এবং CA-ই নির্ধারণ করে কোন যাচাইকরণ পদ্ধতি তারা গ্রহণ করবে, অনেকেই এই কাজের জন্য নিজস্ব ইউটিলিটি নির্ধারণ করে দেয়। কিছু তৈরি করার আগে আপনার CA-কে জিজ্ঞাসা করুন তারা কোন পথ সমর্থন করে, কারণ ভুল টুল দিয়ে তৈরি করা কী পরে সরানো যায় না।
একটি অভ্যন্তরীণ বা এন্টারপ্রাইজ CA। Baseline Requirements প্রকাশ্যে বিশ্বস্ত সার্টিফিকেটগুলো পরিচালনা করে। আপনার নিজস্ব Active Directory Certificate Services CA দ্বারা অভ্যন্তরীণ সাইনিংয়ের জন্য জারি করা একটি সার্টিফিকেট সেই পরিধির বাইরে, তাই আপনার নিজস্ব নীতিই নির্ধারণ করে কী কীভাবে সংরক্ষণ করা হবে এবং একটি সফটওয়্যার প্রোভাইডার একটি বৈধ পছন্দ। মনে রাখবেন আপনি কী পাচ্ছেন: এভাবে সাইন করা কোড শুধুমাত্র সেই মেশিনগুলোতে বিশ্বস্ত থাকে যেগুলো ইতিমধ্যে আপনার অভ্যন্তরীণ রুট বিশ্বাস করে, এবং অন্য সব জায়গায় Windows প্রকাশককে এখনও অজানা হিসেবে বিবেচনা করে।
টেস্ট সাইনিং এবং প্রস্তুতি। একটি টেস্ট সার্টিফিকেটের জন্য একটি সফটওয়্যার রিকোয়েস্ট ঠিক আছে, এবং সঠিক সাবজেক্ট মানগুলো নির্ধারণ করার জন্যও যা আপনি পরে আপনার হার্ডওয়্যারের বিরুদ্ধে আসল রিকোয়েস্ট তৈরি করার সময় পুনরায় ব্যবহার করবেন।
ধাপ ১: Certificates স্ন্যাপ-ইন খুলুন
Windows key + R চাপুন, mmc টাইপ করুন এবং Enter চাপুন। আপনি টাস্কবার সার্চ বক্সেও mmc টাইপ করে সেখান থেকে খুলতে পারেন। User Account Control প্রম্পট গ্রহণ করুন। একটি খালি Console1 উইন্ডো খুলবে।
File-এ ক্লিক করুন, তারপর Add/Remove Snap-in। Available snap-ins তালিকায় Certificates নির্বাচন করুন এবং Add-এ ক্লিক করুন।
এখন Windows জিজ্ঞাসা করবে স্ন্যাপ-ইনটি কোন সার্টিফিকেট স্টোর পরিচালনা করবে: My user account, Service account নাকি Computer account। এই পছন্দটি একটি ওয়েব সার্ভার সার্টিফিকেটের চেয়ে একটি কোড সাইনিং সার্টিফিকেটের জন্য বেশি গুরুত্বপূর্ণ, কারণ এটি নির্ধারণ করে কী কোথায় থাকবে এবং আপনার সাইনিং টুল কোন স্টোরে খুঁজবে:
- My user account সাইন-ইন করা ব্যবহারকারীর ব্যক্তিগত স্টোরে কী রাখে। এটি সাধারণ পছন্দ যখন একজন ডেভেলপার ইন্টারঅ্যাক্টিভভাবে সাইন করেন, কারণ Microsoft-এর signtool ডিফল্টভাবে বর্তমান ব্যবহারকারীর My স্টোর খুলে।
- Computer account কী মেশিন স্টোরে রাখে, যা এমন একটি বিল্ড সার্ভারের জন্য উপযুক্ত যেখানে সাইনিং একটি সার্ভিস অ্যাকাউন্টের অধীনে চলে। সাইনিং টুলগুলোকে সেখানে খুঁজতে বলে দিতে হয়: signtool মেশিন স্টোরের জন্য /sm সুইচ নেয়।
আপনি যদি My user account নির্বাচন করেন, Finish-এ ক্লিক করুন। আপনি যদি Computer account নির্বাচন করেন, Next-এ ক্লিক করুন, Local computer (the computer this console is running on) নির্বাচিত রেখে দিন এবং Finish-এ ক্লিক করুন। যেভাবেই হোক, Add or Remove Snap-ins উইন্ডো বন্ধ করতে OK-তে ক্লিক করুন।

দুটি শর্টকাট আপনার সংরক্ষিত কনসোল প্রয়োজন না হলে সম্পূর্ণভাবে স্ন্যাপ-ইন ধাপ এড়িয়ে যায়: certmgr.msc সরাসরি বর্তমান ব্যবহারকারীর সার্টিফিকেট স্টোরগুলো খোলে, এবং certlm.msc লোকাল কম্পিউটার স্টোরগুলো খোলে। আপনি যদি হাতে কনসোল তৈরি করেন এবং পরে আবার ব্যবহার করবেন বলে আশা করেন, তাহলে এটি সংরক্ষণ করতে File তারপর Save ব্যবহার করুন।
ধাপ ২: একটি কাস্টম রিকোয়েস্ট শুরু করুন
কনসোল ট্রিতে, Certificates প্রসারিত করুন এবং Personal ফোল্ডারে (অথবা এর নিচের Certificates ফোল্ডারে, যদি স্টোরে ইতিমধ্যে সার্টিফিকেট থেকে থাকে) ডান-ক্লিক করুন। All Tasks, তারপর Advanced Operations, তারপর Create Custom Request নির্বাচন করুন। আপনি চাইলে একই কমান্ডগুলো Action মেনুতেও পাবেন।
Certificate Enrollment উইজার্ড Before You Begin-এ খুলবে। Next-এ ক্লিক করুন।
Select Certificate Enrollment Policy-তে, Custom Request শিরোনামের নিচে দেখুন এবং Proceed without enrollment policy নির্বাচন করুন, তারপর Next-এ ক্লিক করুন। এটি Windows-কে একটি Active Directory টেমপ্লেটের বিপরীতে enrollment না করে একটি বাহ্যিক CA-এর জন্য একটি স্বতন্ত্র রিকোয়েস্ট তৈরি করতে বলে।
Custom request পৃষ্ঠায় তিনটি সেটিং আছে:
- Template। (No template) CNG key নির্বাচন করুন। এটি একটি Key Storage Provider ব্যবহার করে, যা আধুনিক হার্ডওয়্যার প্রোভাইডারগুলো হিসেবে নিবন্ধিত হয়। (No template) Legacy key পুরনো CryptoAPI প্রোভাইডার ব্যবহার করে এবং শুধুমাত্র তখনই প্রয়োজন হয় যখন একটি নির্দিষ্ট ডিভাইস বা অ্যাপ্লিকেশনের একটি প্রয়োজন হয়।
- Suppress default extensions। এটি খালি রাখুন যদি না আপনি শুধুমাত্র নিজে সেট করা এক্সটেনশনগুলো পাঠাতে চান।
- Request format। PKCS #10 নির্বাচন করুন। প্রতিটি CA এটি গ্রহণ করে। CMC এমন সিস্টেমের জন্য যা নির্দিষ্টভাবে এটি চায়।
Next-এ ক্লিক করুন। Certificate Information পৃষ্ঠায় আপনি Custom request লেবেলযুক্ত একটি সারি দেখবেন যার স্ট্যাটাস Available। সেই সারির ডানদিকে Details তীরে ক্লিক করে এটি প্রসারিত করুন, তারপর যে Properties বাটনটি দেখা যায় তাতে ক্লিক করুন। Certificate Properties ডায়ালগ চারটি ট্যাব নিয়ে খোলে: General, Subject, Extensions এবং Private Key।

ধাপ ৩: সাবজেক্ট বিবরণ প্রবেশ করান
General ট্যাবে, একটি Friendly name এবং, চাইলে, একটি Description টাইপ করুন। দুটোই স্থানীয় লেবেল যা আপনাকে পরে স্টোরে সার্টিফিকেট খুঁজে পেতে সাহায্য করে। এদের কোনোটিই রিকোয়েস্টের অংশ নয়, এবং কোনোটিই যাচাই করা হয় না।
Subject ট্যাবে যান। এখানেই সেই পরিচয় একত্রিত করা হয় যা সফটওয়্যার প্রকাশক হিসেবে প্রদর্শিত হবে। Subject name-এর অধীনে, Type ড্রপ-ডাউন থেকে একটি এন্ট্রি বেছে নিন, Value বক্সে সংশ্লিষ্ট টেক্সট টাইপ করুন, এবং Add >-এ ক্লিক করুন। প্রতিটি এন্ট্রি ডানদিকের তালিকায় চলে যায়, যেখানে Windows এটি সংক্ষিপ্ত আকারে দেখায় (CN=, O=, OU=, L=, S=, C=)। নিম্নলিখিত প্রতিটির জন্য এটি পুনরাবৃত্তি করুন:
- Common name (CN): আপনার প্রতিষ্ঠানের নিবন্ধিত নাম, অথবা একটি ব্যক্তিগত সার্টিফিকেটের জন্য ব্যক্তির সম্পূর্ণ আইনি নাম। এটাই সেই পরিচয় যা ব্যবহারকারীরা দেখে যখন Windows প্রকাশকের নাম দেখায়।
- Organization (O): যে নিবন্ধিত প্রতিষ্ঠানের সার্টিফিকেটটি তার নাম। নামে যদি অ্যাম্পারস্যান্ডের মতো কোনো চিহ্ন থাকে, তাহলে তা বিস্তারিতভাবে লিখুন অথবা বাদ দিন, কারণ এই ফিল্ডে এই ধরনের অক্ষর গ্রহণযোগ্য নয়। “AB & C Corporation” হয়ে যায় “AB and C Corporation” অথবা “ABC Corporation”।
- Organizational unit (OU): enrollment পরিচালনাকারী বিভাগ, যেমন IT। ঐচ্ছিক।
- Locality (L): যে শহরে প্রতিষ্ঠানটি নিবন্ধিত।
- State (S): রাজ্য বা প্রদেশ, সম্পূর্ণভাবে লিখিত। Florida ব্যবহার করুন, FL নয়।
- Country (C): যে স্থানে প্রতিষ্ঠানটি নিবন্ধিত তার দুই-অক্ষরের ISO দেশের কোড, যেমন US।
আপনার আইনি রেকর্ডের সাথে হুবহু মিলে যায় এমন বিবরণ প্রবেশ করান, কারণ CA কিছু জারি করার আগে সেগুলো পাবলিক এবং সরকারি উৎসের বিরুদ্ধে যাচাই করে। একটি অমিল হলো একটি কোড সাইনিং অর্ডার আটকে যাওয়ার সবচেয়ে সাধারণ কারণ।
Alternative name বক্স খালি রাখুন। Subject Alternative Names হোস্ট নাম দিয়ে সার্ভার শনাক্ত করে, এবং একটি কোড সাইনিং সার্টিফিকেট একটি মেশিনের পরিবর্তে একজন প্রকাশককে শনাক্ত করে, তাই এতে কোনো DNS এন্ট্রি থাকে না।

ধাপ ৪: প্রোভাইডার, কী সাইজ এবং হ্যাশ বেছে নিন
Private Key ট্যাব খুলুন। এতে কয়েকটি সংকোচনযোগ্য গ্রুপ আছে: Cryptographic Service Provider, Key options, Select Hash Algorithm, Select Signature Format এবং Key permissions। একটি শিরোনামে ক্লিক করে এটি প্রসারিত করুন।
প্রথমে Cryptographic Service Provider প্রসারিত করুন, কারণ এটাই সেই সেটিং যা Baseline Requirements চালু করে। তালিকায় মেশিনে ইনস্টল করা প্রতিটি প্রোভাইডার দেখা যায়, প্রতিটির একটি চেক বক্স সহ। নিশ্চিত করুন যে শুধুমাত্র আপনি যে প্রোভাইডারটি আসলে চান সেটিই টিক করা আছে:
- একটি প্রকাশ্যে বিশ্বস্ত কোড সাইনিং সার্টিফিকেটের জন্য, আপনার টোকেন বা HSM-এর সাথে সম্পর্কিত প্রোভাইডার নির্বাচন করুন। এটি এই তালিকায় শুধুমাত্র তখনই দেখা যায় যখন ডিভাইসের ড্রাইভার বা মিনিড্রাইভার ইনস্টল করা হয়, তাই প্রথমে ডিভাইসটি প্লাগ ইন করুন এবং এর সফটওয়্যার ইনস্টল করুন।
- RSA, Microsoft Software Key Storage Provider হলো সফটওয়্যার অপশন। শুধুমাত্র একটি অভ্যন্তরীণ CA বা একটি টেস্ট সার্টিফিকেটের জন্য এটি ব্যবহার করুন।
- তালিকায় ECDSA এন্ট্রিও রয়েছে যেমন ECDSA_P256, Microsoft Software Key Storage Provider। একটি নির্বাচন করার আগে নিশ্চিত করুন আপনার CA কোড সাইনিংয়ের জন্য ECDSA সমর্থন করে, কারণ প্রতিটি পণ্য এটি করে না।
Key options প্রসারিত করুন। Key size 3072 অথবা 4096-এ সেট করুন। RSA 3072 হলো কোড সাইনিংয়ের সর্বনিম্ন সীমা, এবং 2048 দিয়ে তৈরি একটি রিকোয়েস্ট প্রত্যাখ্যাত হবে। আপনি যে প্রোভাইডার বেছেছেন তার জন্য ড্রপ-ডাউনে যদি 3072 না থাকে, তাহলে 4096 ব্যবহার করুন।
একই গ্রুপে, Make private key exportable আনচেক করে রাখুন। এটাই পুরনো MMC নির্দেশাবলীর সবচেয়ে গুরুত্বপূর্ণ সংশোধন। একটি এক্সপোর্টযোগ্য কী মেশিন থেকে .pfx ফাইল হিসেবে কপি করা যেতে পারে, যা ঠিক সেটাই যা হার্ডওয়্যার প্রয়োজনীয়তা প্রতিরোধ করার জন্য বিদ্যমান, এবং অ্যাটেস্টেশন পথ স্পষ্টভাবে সার্টিফাই করে যে কী অ-রপ্তানিযোগ্য পদ্ধতিতে তৈরি হয়েছে। এটি চেক করার একমাত্র কারণ হলো একটি অভ্যন্তরীণ সাইনিং সেটআপ যেখানে আপনাকে সার্টিফিকেট এবং কী অন্য মেশিনে সরাতে হবে, এবং তখনও এটি কী-কে দুর্বল করে দেয়। Allow private key to be archived আনচেক করেও রাখুন। Strong private key protection ঐচ্ছিক এবং এটি Windows-কে প্রতিবার কী ব্যবহার করার সময় প্রম্পট করতে বাধ্য করে, যা একটি শেয়ার করা ওয়ার্কস্টেশনে একটি সাইনিং কী-এর জন্য যুক্তিসঙ্গত।
Select Hash Algorithm প্রসারিত করুন এবং Hash Algorithm sha256-এ সেট করুন। কোড সাইনিং সার্টিফিকেটের জন্য SHA-1 অনুমোদিত নয়।

আপনি যদি একটি অভ্যন্তরীণ CA-এর জন্য enroll করছেন তাহলে Extensions ট্যাবটি দেখা মূল্যবান। Key usage প্রসারিত করুন এবং Digital signature যোগ করুন, তারপর Extended Key Usage (application policies) প্রসারিত করুন এবং Code Signing যোগ করুন। একটি পাবলিক CA আপনার রিকোয়েস্টের এক্সটেনশনের পরিবর্তে আপনি যে পণ্যটি অর্ডার করেছেন তা থেকে সার্টিফিকেট তৈরি করে, তাই একটি পাবলিক অর্ডারের জন্য এই ট্যাব কিছুই পরিবর্তন করে না। একটি অভ্যন্তরীণ CA এটি মেনে নিতে পারে।
Certificate Properties বন্ধ করতে OK-তে ক্লিক করুন, তারপর Next।
ধাপ ৫: রিকোয়েস্ট সংরক্ষণ করুন
উইজার্ড জিজ্ঞাসা করে Where do you want to save the offline request? Browse-এ ক্লিক করুন, আপনার নিয়ন্ত্রণে থাকা একটি ফোল্ডার বেছে নিন, ফাইলটির একটি নাম দিন যেমন codesigning.req এবং নিশ্চিত করুন। সবসময় একটি ফোল্ডারে ব্রাউজ করুন বরং একটি সাধারণ ফাইলের নাম টাইপ করার পরিবর্তে: পথ ছাড়া রিকোয়েস্টটি যে ফোল্ডার থেকে কনসোল চলছে সেখানে গিয়ে পড়বে, যা খুব কমই আপনার কাঙ্ক্ষিত জায়গা এবং আবার খুঁজে পাওয়া কঠিন।
File format-এর অধীনে, Base 64 নির্বাচিত রাখুন। এটাই সেই টেক্সট ফর্ম যা CA-রা একটি enrollment বক্সে পেস্ট করে। Binary র-কাঁচা DER লেখে, যা বেশিরভাগ অর্ডার ফর্ম প্রত্যাখ্যান করে। Finish-এ ক্লিক করুন।

যেকোনো প্লেইন-টেক্সট এডিটরে, যেমন Notepad-এ, ফাইলটি খুলুন এবং প্রথম ও শেষ লাইন সহ পুরো ব্লকটি কপি করুন:
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIEbDCCA1QCAQAwZDELMAkGA1UEBhMCVVMx...
...base64 encoded request...
-----END NEW CERTIFICATE REQUEST-----
Windows enrollment টুলগুলো সাধারণত উপরে দেখানো দীর্ঘ শব্দচয়ন লেখে, মার্কার লাইনে NEW শব্দ সহ, যেখানে OpenSSL লেখে BEGIN CERTIFICATE REQUEST এবং END CERTIFICATE REQUEST। আপনার ফাইল যদি সংক্ষিপ্ত ফর্ম ব্যবহার করে, তাহলে কিছু ভুল নেই: বিষয়বস্তু একই PKCS #10 রিকোয়েস্ট এবং Certificate Authority-রা উভয়ই গ্রহণ করে। আপনি যা দেখছেন ঠিক তাই কপি করুন এবং মার্কার লাইনগুলো পুনরায় লিখবেন না।
একটি জিনিস যা উইজার্ড তৈরি করে না তা হলো আপনি সংরক্ষণ বা কপি করতে পারেন এমন একটি প্রাইভেট কী ফাইল, এবং পুরনো গাইড যা আপনাকে পাবলিক এবং প্রাইভেট কী ফাইল নিরাপদে রাখতে বলে সেগুলো একটি ভিন্ন টুলের কথা বর্ণনা করছে। MMC নতুন প্রাইভেট কী Windows কী স্টোরের ভেতরে রাখে, আপনি ধাপ ১-এ নির্বাচন করা অ্যাকাউন্টের অধীনে, শুধুমাত্র সেই কম্পিউটারে। মুলতুবি থাকা রিকোয়েস্টটি সাধারণত স্ন্যাপ-ইনে Certificate Enrollment Requests-এর অধীনে দেখা যায়। তিনটি পরিণতি অনুসরণ করে:
- ইস্যু হওয়ার জন্য অপেক্ষা করার সময় মুলতুবি রিকোয়েস্টটি মুছবেন না। এটি মুছে ফেললে কী বাতিল হয়ে যায়, এবং তখন জারি করা সার্টিফিকেট অকেজো হয়ে যাবে।
- একই কম্পিউটারে, একই অ্যাকাউন্ট প্রেক্ষাপটে অর্ডারটি সম্পূর্ণ করুন। ব্যবহারকারী স্টোরে তৈরি একটি রিকোয়েস্ট মেশিন স্টোরে সম্পূর্ণ করা যায় না, বা এর উল্টোটাও নয়।
- রিকোয়েস্ট তৈরি করা এবং সার্টিফিকেট ইনস্টল করার মধ্যে মেশিনটি পুনরায় তৈরি বা রি-ইমেজ করবেন না।
ধাপ ৬: জমা দেওয়ার আগে রিকোয়েস্ট যাচাই করুন
একটি রিকোয়েস্ট তৈরি হওয়ার পর সম্পাদনা করা যায় না, তাই যাচাইকরণ শুরু হওয়ার পরে একটি টাইপো আবিষ্কার করার পরিবর্তে এখনই এটি পরীক্ষা করুন। Windows কোনো অতিরিক্ত সফটওয়্যার ছাড়াই এটি পড়তে পারে। ফাইলটি থাকা ফোল্ডারে একটি Command Prompt খুলুন এবং চালান:
certutil -dump codesigning.req
যদি OpenSSL ইনস্টল করা থাকে, এটি একই ফাইল পড়ে এবং রিকোয়েস্ট স্বাক্ষরও যাচাই করে:
openssl req -noout -text -verify -in codesigning.req
আউটপুটে চারটি জিনিস নিশ্চিত করুন: সাবজেক্টে আপনার উদ্দেশ্য অনুযায়ী হুবহু দেশ, রাজ্য, লোকালিটি, প্রতিষ্ঠান এবং কমন নাম তালিকাভুক্ত আছে; পাবলিক কী 3072 বিট বা তার বেশি, অথবা একটি অনুমোদিত ECDSA কার্ভ; স্বাক্ষর অ্যালগরিদম SHA-256; এবং, OpenSSL কমান্ডের সাথে, একটি verify OK লাইন দেখা যায়, যা নিশ্চিত করে যে রিকোয়েস্টটি এর সংশ্লিষ্ট প্রাইভেট কী দ্বারা স্বাক্ষরিত হয়েছিল। আপনি একটি ব্রাউজারে এটি পড়ার জন্য ব্লকটি CSR decoder-এও পেস্ট করতে পারেন।
যদি কিছু ভুল থাকে, ধাপ ২ থেকে একটি নতুন রিকোয়েস্ট তৈরি করুন। মেশিনে কোন প্রোভাইডারগুলো উপলব্ধ আছে দেখার জন্য, যার মধ্যে আপনার ইনস্টল করা যেকোনো হার্ডওয়্যার প্রোভাইডারও রয়েছে, চালান:
certutil -csplist
ধাপ ৭: একই মেশিনে জারি করা সার্টিফিকেট ইনস্টল করুন
আপনার সার্টিফিকেট অর্ডারের সময় Base 64 ব্লক জমা দিন, CA যে যাচাইকরণ চায় তা সম্পূর্ণ করুন, এবং জারি করা সার্টিফিকেট এলে ডাউনলোড করুন। যেহেতু প্রাইভেট কী Windows কী স্টোরে থেকে গিয়েছিল, তাই সার্টিফিকেটটিকে ব্যবহারযোগ্য হতে একই স্টোরে ফিরে আসতে হবে।
একই স্ন্যাপ-ইনে, Personal-এ ডান-ক্লিক করুন, All Tasks নির্বাচন করুন, তারপর Import, এবং উইজার্ডটিকে ফাইলের দিকে নির্দেশ করুন। Windows সার্টিফিকেটটিকে রিকোয়েস্ট থেকে রাখা কী-এর সাথে মেলায়, এবং Certificate Enrollment Requests-এর অধীনে থাকা মুলতুবি এন্ট্রিটি অদৃশ্য হয়ে যায়। এরপর সার্টিফিকেটটি খুলুন এবং পরীক্ষা করুন যে General ট্যাবে বলা আছে আপনার কাছে একটি প্রাইভেট কী আছে যা এই সার্টিফিকেটের সাথে সংশ্লিষ্ট। যদি সেই লাইনটি অনুপস্থিত থাকে, তাহলে পেয়ারিংটি ঘটেনি, এবং আপনি সার্টিফিকেটের সিরিয়াল নাম্বার দিয়ে এটি পুনরায় লিঙ্ক করতে পারেন:
certutil -repairstore My <serial-number>
সার্টিফিকেটটি যদি মেশিনের পরিবর্তে বর্তমান ব্যবহারকারীর হয়, তাহলে -user সুইচ যোগ করুন:
certutil -user -repairstore My <serial-number>
এরপর আপনার সাইনিং টুল স্টোর থেকে সার্টিফিকেটটি বেছে নেয়। ধাপ ১-এ আপনি যে স্টোরটি বেছেছিলেন তা মনে রাখুন: signtool বর্তমান ব্যবহারকারীর My স্টোর পড়ে যদি না আপনি মেশিন স্টোরের জন্য /sm পাস করেন।
একই রিকোয়েস্ট তৈরি করার অন্যান্য উপায় CertReq, OpenSSL, Java Keystore এবং macOS Keychain Access গাইডে কভার করা আছে। আপনি হয়তো আরও বিস্তৃত code signing টিউটোরিয়াল অথবা CSR তৈরি করার অন্যান্য উপায়ও দেখতে চাইতে পারেন।
সচরাচর জিজ্ঞাসিত প্রশ্নাবলী
হ্যাঁ, তবে শুধুমাত্র তখনই যখন রিকোয়েস্টটি হার্ডওয়্যার দ্বারা সমর্থিত অথবা একটি প্রাইভেট CA-এর উদ্দেশ্যে তৈরি। জুন ১, ২০২৩ থেকে CA/Browser Forum-এর প্রয়োজন যে প্রতিটি প্রকাশ্যে বিশ্বস্ত কোড সাইনিং সার্টিফিকেটের প্রাইভেট কী FIPS 140-2 Level 2 অথবা Common Criteria EAL 4+ মান পূরণকারী একটি হার্ডওয়্যার ক্রিপ্টো মডিউলে তৈরি এবং সংরক্ষিত হতে হবে। MMC Microsoft Software Key Storage Provider-এর বিরুদ্ধে যে রিকোয়েস্ট তৈরি করে তা সফটওয়্যারে কী তৈরি করে এবং প্রত্যাখ্যাত হবে। উইজার্ডে আপনার টোকেন বা HSM প্রোভাইডার নির্বাচন করলে কী হার্ডওয়্যারে থেকে যায়, এবং একটি অভ্যন্তরীণ CA বা একটি টেস্ট সার্টিফিকেটের জন্য একটি সফটওয়্যার রিকোয়েস্ট এখনও ঠিক আছে।
না, একটি কোড সাইনিং কী-এর জন্য নয়। একটি এক্সপোর্টযোগ্য কী মেশিন থেকে .pfx ফাইল হিসেবে কপি করা যেতে পারে, যা হার্ডওয়্যার প্রয়োজনীয়তার মূল উদ্দেশ্যকেই ব্যর্থ করে দেয়, এবং key attestation পথ সার্টিফাই করে যে কী অ-রপ্তানিযোগ্য পদ্ধতিতে তৈরি হয়েছে। পুরনো MMC নির্দেশাবলী আপনাকে বক্সটি চেক করতে বলে, এবং সেই পরামর্শ পুরনো হয়ে গেছে। এটির একমাত্র ক্ষেত্র হলো একটি অভ্যন্তরীণ সাইনিং সেটআপ যেখানে সার্টিফিকেট এবং কী সত্যিই অন্য মেশিনে সরাতে হয়।
সাইনিং যেখান থেকে চলবে সেই স্টোরটি বেছে নিন। My user account সাইন-ইন করা ব্যবহারকারীর ব্যক্তিগত স্টোরে কী রাখে, যেখানে signtool ডিফল্টভাবে খুঁজে দেখে, তাই এটি একজন ডেভেলপার ইন্টারঅ্যাক্টিভভাবে সাইন করার জন্য উপযুক্ত। Computer account মেশিন স্টোরে কী রাখে, যা একটি সার্ভিস অ্যাকাউন্টের অধীনে চলা একটি বিল্ড সার্ভারের জন্য উপযুক্ত, এবং সাইনিং টুলগুলোকে তখন সেখানে খুঁজতে বলে দিতে হয়। আপনি যাই বেছে নিন না কেন, একই প্রেক্ষাপটে রিকোয়েস্ট তৈরি করুন এবং জারি করা সার্টিফিকেট ইনস্টল করুন।
সংরক্ষণ করার মতো কোনো প্রাইভেট কী ফাইল নেই। MMC আপনি যে কম্পিউটারে রিকোয়েস্ট তৈরি করেছেন সেখানে, আপনি নির্বাচিত অ্যাকাউন্টের অধীনে, Windows কী স্টোরের ভেতরে কী রাখে, এবং Certificate Enrollment Requests-এর অধীনে অসম্পূর্ণ রিকোয়েস্ট দেখায়। সেই মুলতুবি রিকোয়েস্ট মুছবেন না, এবং সার্টিফিকেট ইনস্টল করার আগে মেশিনটি পুনরায় তৈরি করবেন না, কারণ যেকোনো একটি কাজ কী নষ্ট করে দেয় এবং জারি করা সার্টিফিকেটকে অকেজো করে দেয়।
RSA কমপক্ষে 3072 বিট, এবং 4096 একটি সাধারণ পছন্দ। আপনি যদি ECDSA ব্যবহার করেন, কার্ভটি অবশ্যই NIST P-256, P-384 অথবা P-521 হতে হবে, এবং প্রথমে নিশ্চিত করা উচিত যে আপনার Certificate Authority কোড সাইনিংয়ের জন্য ECDSA সমর্থন করে। হ্যাশ অ্যালগরিদম sha256-এ সেট করুন। কোড সাইনিং সার্টিফিকেটের জন্য SHA-1 অনুমোদিত নয়।
প্রায় প্রতিটি ক্ষেত্রেই CNG key। এটি একটি Key Storage Provider ব্যবহার করে, যা বর্তমান হার্ডওয়্যার টোকেন এবং HSM-গুলো Windows-এ কীভাবে নিবন্ধিত হয়, এবং Private Key ট্যাবের Cryptographic Service Provider তালিকায় এটিই দেখা যাবে। Legacy key পুরনো CryptoAPI প্রোভাইডারে ফিরে যায় এবং শুধুমাত্র তখনই নির্বাচন করার মতো যখন একটি নির্দিষ্ট ডিভাইস বা অ্যাপ্লিকেশনের একটির প্রয়োজন হয়।
চালান certutil -dump codesigning.req, যার Windows-এ কোনো অতিরিক্ত সফটওয়্যার প্রয়োজন হয় না, অথবা openssl req -noout -text -verify -in codesigning.req যদি OpenSSL ইনস্টল করা থাকে। সাবজেক্ট মান, কী সাইজ এবং স্বাক্ষর অ্যালগরিদম পড়ে দেখুন। একবার তৈরি হয়ে গেলে একটি রিকোয়েস্ট সম্পাদনা করা যায় না, তাই যদি কিছু ভুল থাকে, ফাইলটি ঠিক করার চেষ্টা করার পরিবর্তে একটি নতুন তৈরি করুন।
আজ অর্ডার করার সময় SSL শংসাপত্রে 10% সংরক্ষণ করুন!
দ্রুত ইস্যু, শক্তিশালী এনক্রিপশন, 99.99% ব্রাউজার বিশ্বাস, নিবেদিত সমর্থন, এবং 25 দিনের অর্থ ফেরত গ্যারান্টি। কুপন কোড: SAVE10

