bg-tutorials

OpenSSL দিয়ে কোড সাইনিং সার্টিফিকেটের জন্য CSR জেনারেট করার পদ্ধতি

এই গাইডে ব্যাখ্যা করা হয়েছে কীভাবে OpenSSL দিয়ে কাজ করার সময় একটি কোড সাইনিং সার্টিফিকেট-এর জন্য Certificate Signing Request (CSR) তৈরি করা হয়, এবং সমান গুরুত্বপূর্ণভাবে, কখন এই পদ্ধতি আর প্রযোজ্য নয়। জুন ১, ২০২৩ থেকে, কোড সাইনিং কী-এর নিয়ম পরিবর্তিত হয়েছে, তাই পুরাতন শুধুমাত্র-সফটওয়্যার-নির্ভর OpenSSL ওয়ার্কফ্লো Certificate Authority-গুলো একটি প্রকাশ্যে বিশ্বস্ত কোড সাইনিং সার্টিফিকেটের জন্য গ্রহণ করে না। প্রথমে নিচের প্রয়োজনীয়তাটি পড়ুন, তারপর আপনার কী কীভাবে সংরক্ষিত আছে তার সাথে মিলে যায় এমন পথ অনুসরণ করুন।

গুরুত্বপূর্ণ: কোড সাইনিং কী-গুলো হার্ডওয়্যারে থাকতে হবে

CA/Browser Forum Code Signing Baseline Requirements-এর অধীনে, যা জুন ১, ২০২৩ থেকে কার্যকর, প্রতিটি প্রকাশ্যে বিশ্বস্ত কোড সাইনিং সার্টিফিকেটের প্রাইভেট কী, তা স্ট্যান্ডার্ড (OV) হোক বা এক্সটেন্ডেড ভ্যালিডেশন (EV), অবশ্যই একটি হার্ডওয়্যার ক্রিপ্টো মডিউলে তৈরি ও সংরক্ষণ করতে হবে যা FIPS 140-2 Level 2, Common Criteria EAL4+, অথবা সমতুল্য মান পূরণ করে। কী-টি অবশ্যই নন-এক্সপোর্টেবল হতে হবে। EV কোড সাইনিং সবসময়ই হার্ডওয়্যার প্রয়োজন করত; এই নিয়ম একই সুরক্ষাকে স্ট্যান্ডার্ড সার্টিফিকেটেও বিস্তৃত করেছে।

এর ব্যবহারিক ফলাফল: একটি ল্যাপটপ বা সার্ভারে সাধারণ OpenSSL দিয়ে শুধুমাত্র সফটওয়্যারে তৈরি প্রাইভেট কী এবং CSR এখন একটি প্রকাশ্যে বিশ্বস্ত কোড সাইনিং সার্টিফিকেট ইস্যু করার জন্য আর গ্রহণযোগ্য নয়। Certificate Authority-গুলো এই পণ্যগুলোর জন্য ব্রাউজার-ভিত্তিক কী জেনারেশন এবং সফটওয়্যার CSR সমর্থন করা বন্ধ করেছে। আপনার কী এখন এই স্থানগুলোর একটিতে থাকে:

  • আপনাকে পাঠানো একটি হার্ডওয়্যার টোকেন (উদাহরণস্বরূপ একটি YubiKey বা একটি SafeNet/Thales eToken)। টোকেন + শিপমেন্ট ডেলিভারি পদ্ধতিতে, Certificate Authority ডিভাইসে কী তৈরি করে এবং CSR পরিচালনা করে, তাই আপনি OpenSSL দিয়ে একটি তৈরি করেন না।
  • আপনার নিয়ন্ত্রণাধীন একটি Hardware Security Module (HSM), অন-প্রিমিসেস বা ক্লাউড-ভিত্তিক। এখানে আপনি HSM-এর ভেতরে কী তৈরি করেন এবং একটি CSR এর পাশাপাশি একটি কী অ্যাটেস্টেশন তৈরি করেন যা প্রমাণ করে যে কী-টি হার্ডওয়্যারে তৈরি হয়েছিল।
  • একটি ক্লাউড সাইনিং সার্ভিস যা আপনার পক্ষে কী-টি একটি সঙ্গতিপূর্ণ HSM-এ রাখে।

আপনি সার্টিফিকেটটি কীভাবে গ্রহণ ও সংরক্ষণ করতে চান তার ভিত্তিতে আপনার পথ বেছে নিন। একটি সংক্ষিপ্ত বিবরণের জন্য, কোড সাইনিং ডেলিভারি পদ্ধতি গাইডটি দেখুন। হার্ডওয়্যার-সমর্থিত CSR এবং অ্যাটেস্টেশন পদক্ষেপের জন্য, আপনার ডিভাইসের সাথে মেলে এমন গাইডটি অনুসরণ করুন:

আপনি যদি ভিন্ন কোনো HSM ব্যবহার করেন, তাহলে সেই বিক্রেতার টুলিং দিয়ে CSR তৈরি করুন যাতে কী-টি হার্ডওয়্যারে থাকে। পরে দেখানো OpenSSL req কমান্ডটি সেই ওয়ার্কফ্লোতেও একটি ভূমিকা রাখে যখন OpenSSL একটি প্রোভাইডার বা ইঞ্জিনের মাধ্যমে HSM চালায়, তবে এটি অবশ্যই এমন একটি কী উল্লেখ করতে হবে যা ইতিমধ্যেই মডিউলে থাকে, একটি প্রকাশ্যে বিশ্বস্ত সার্টিফিকেটের জন্য কখনো একটি সাধারণ সফটওয়্যার কী ফাইল নয়।

কখন সফটওয়্যার OpenSSL পদ্ধতি এখনও প্রযোজ্য

নিচের সফটওয়্যার ওয়ার্কফ্লোটি ডিস্কে একটি কী ফাইল তৈরি করে। এটি শুধুমাত্র সেই ক্ষেত্রগুলোর জন্য গ্রহণযোগ্য যা একটি প্রকাশ্যে বিশ্বস্ত কোড সাইনিং সার্টিফিকেট নয়, যেমন:

  • একটি প্রাইভেট/এন্টারপ্রাইজ CA দিয়ে অভ্যন্তরীণ বা পরীক্ষামূলক সাইনিং, যেখানে আপনার নিজস্ব নীতি, পাবলিক CA/Browser Forum নিয়ম নয়, কী সংরক্ষণ নিয়ন্ত্রণ করে।
  • টোকেন বা HSM-এ যাওয়ার আগে OpenSSL কমান্ড কাঠামো শেখা।
  • আপনার হার্ডওয়্যার কী-এর বিপরীতে আসল CSR তৈরি করার সময় পুনরায় ব্যবহার করবেন এমন সাবজেক্ট বিবরণ এবং কমান্ড সিনট্যাক্স প্রস্তুত করা।

একটি OV বা EV কোড সাইনিং সার্টিফিকেটের জন্য একটি পাবলিক Certificate Authority-তে সফটওয়্যার-তৈরি কী এবং CSR জমা দেবেন না। এটি প্রত্যাখ্যান করা হবে। এই সীমারেখা স্পষ্ট থাকায়, এখানে OpenSSL প্রক্রিয়া এবং সংশ্লিষ্ট কমান্ডগুলো দেওয়া হলো।

১. OpenSSL ডাউনলোড ও ইনস্টল করুন

যদি OpenSSL আপনার কম্পিউটারে ইতিমধ্যে না থাকে, তাহলে আপনার অপারেটিং সিস্টেমের জন্য একটি বর্তমান বিল্ড (OpenSSL 3.x বা তার পরের) ডাউনলোড করে ইনস্টল করুন। macOS এবং বেশিরভাগ Linux ডিস্ট্রিবিউশনে OpenSSL আগে থেকেই থাকে; Windows-এ আপনাকে সাধারণত একটি তৃতীয়-পক্ষের বিল্ড ইনস্টল করতে হয়। ইনস্টল ও ভার্শন নিশ্চিত করুন এভাবে:

openssl version

২. একটি টার্মিনাল খুলুন এবং OpenSSL লোড করুন

Windows-এ, Windows কী + R চাপুন, cmd টাইপ করুন এবং Enter চাপুন। সুরক্ষিত ফোল্ডারে ফাইল লেখার কমান্ডের জন্য, Command Prompt-কে প্রশাসক হিসেবে চালান: Command Prompt আইকনে রাইট-ক্লিক করে Run as administrator নির্বাচন করুন। আপনি টাস্কবার সার্চে cmd টাইপ করেও সেখান থেকে Command Prompt খুলতে পারেন। macOS বা Linux-এ, আপনার টার্মিনাল অ্যাপ্লিকেশন খুলুন।

যদি Windows-এ OpenSSL বাইনারিটি আপনার সিস্টেম পাথে না থাকে, তাহলে প্রথমে এর ইনস্টল ফোল্ডারে যান, আপনার বিল্ডের সাথে মেলে এমন পাথ ব্যবহার করে:

cd OpenSSL-Win32bin
cd "Program FilesOpenSSL-Win64bin"

৩. প্রাইভেট কী এবং CSR তৈরি করুন

প্রথমে প্রাইভেট কী তৈরি করুন। কোড সাইনিং সার্টিফিকেটের জন্য একটি শক্তিশালী কী প্রয়োজন: RSA 3072-বিট (বা তার বেশি) ব্যবহার করুন, যা কোড সাইনিংয়ের জন্য সাধারণ ন্যূনতম, অথবা P-256 কার্ভে একটি ECDSA কী। একটি RSA 3072-বিট কী তৈরি করতে:

openssl genrsa -out code_signing_key.key 3072

তারপর সেই কী থেকে CSR তৈরি করুন। বর্তমান সংস্করণে OpenSSL ডিফল্টভাবে রিকোয়েস্ট স্বাক্ষরের জন্য SHA-256 ব্যবহার করে:

openssl req -new -key code_signing_key.key -out code_signing_csr.txt

৪. CSR ফিল্ডগুলো পূরণ করুন

OpenSSL সেই বিবরণগুলোর জন্য অনুরোধ করে যা সার্টিফিকেট ধারককে শনাক্ত করে। আপনার আইনি সংস্থার রেকর্ডের সাথে মিলে এমন সঠিক, বর্তমান তথ্য দিন, কারণ CA এটি যাচাই করে। উদাহরণগুলো আপনার নিজের বিবরণ দিয়ে প্রতিস্থাপন করুন:

  • দেশ (C): আপনার কোম্পানি যেখানে নিবন্ধিত বা আপনি যেখানে বাস করেন তার দুই অক্ষরের দেশের কোড, উদাহরণস্বরূপ US
  • রাজ্য বা প্রদেশ (ST): পূর্ণ রাজ্য বা প্রদেশের নাম, উদাহরণস্বরূপ California
  • স্থানীয়তা (L): যে শহরে আপনার কোম্পানি নিবন্ধিত, উদাহরণস্বরূপ San Jose
  • প্রতিষ্ঠানের নাম (O): আপনার সংস্থার আনুষ্ঠানিক, আইনি নাম, অথবা সার্টিফিকেটটি একজন ব্যক্তির জন্য হলে আপনার পূর্ণ আইনি নাম, উদাহরণস্বরূপ GPI Holding LLC
  • সাংগঠনিক ইউনিট (OU): সার্টিফিকেট অনুরোধকারী বিভাগ, উদাহরণস্বরূপ IT। এই ফিল্ডটি ঐচ্ছিক।
  • কমন নেম (CN): আপনার সংস্থার আইনি নাম, অথবা একটি ব্যক্তিগত সার্টিফিকেটের জন্য আপনার পূর্ণ নাম। কোড সাইনিংয়ের জন্য, কমন নেমটি প্রকাশক হিসেবে প্রদর্শিত পরিচয়।
  • ইমেইল ঠিকানা: একটি বৈধ যোগাযোগ ইমেইল ঠিকানা।

আপনি ঐচ্ছিক চ্যালেঞ্জ পাসওয়ার্ড এবং ঐচ্ছিক কোম্পানির নাম ফিল্ডগুলো খালি রাখতে পারেন: এই প্রম্পটগুলোতে শুধু Enter চাপুন।

আপনি ধাপ ৩ এবং ৪ একটি একক কমান্ডেও একত্রিত করতে পারেন। -subj ফ্ল্যাগটি সাবজেক্ট ইনলাইনে সরবরাহ করে যাতে OpenSSL প্রম্পট না করে, এবং -nodes কী-টিকে ডিস্কে অ-এনক্রিপ্টেড রাখে (OpenSSL 3.x এই ফ্ল্যাগটির নাম পরিবর্তন করে -noenc করেছে, তবে -nodes এখনও কাজ করে)। লক্ষ্য করুন যে মানটি সোজা কোটেশন চিহ্ন ব্যবহার করে, বাঁকা নয়, এবং পুরো স্ট্রিংটি একজোড়া কোটেশনের মধ্যে বেষ্টিত:

openssl req -new -newkey rsa:3072 -nodes -keyout code_signing_key.key -out code_signing_csr.txt -subj "/C=US/ST=California/L=San Jose/O=GPI Holding LLC/OU=IT/CN=GPI Holding LLC"

৫. CSR যাচাই করুন

কিছু জমা দেওয়ার আগে, নিশ্চিত করুন যে CSR-টি বৈধ এবং এর বিবরণ সঠিক। এই কমান্ডটি ডিকোড করা সাবজেক্ট প্রিন্ট করে এবং রিকোয়েস্ট স্বাক্ষর যাচাই করে:

openssl req -noout -text -verify -in code_signing_csr.txt

নিশ্চিত করুন যে সাবজেক্ট লাইনে আপনার উদ্দিষ্ট দেশ, সংস্থা এবং কমন নেম ঠিকভাবে তালিকাভুক্ত আছে, পাবলিক কী সাইজ ৩০৭২ বিট বা তার বেশি (অথবা একটি ECDSA কী), এবং স্বাক্ষর অ্যালগরিদম SHA-256। আপনার একটি verify OK বার্তাও দেখা উচিত, যা নিশ্চিত করে যে CSR-টি তার সংশ্লিষ্ট প্রাইভেট কী দ্বারা স্বাক্ষরিত হয়েছিল।

৬. প্রাইভেট কী এবং CSR একটি নিরাপদ ডিরেক্টরিতে সরান

প্রাইভেট কী এবং CSR-টি OpenSSL ফোল্ডার থেকে সরিয়ে আপনার নিয়ন্ত্রণাধীন একটি ডিরেক্টরিতে নিয়ে যান। প্রাইভেট কী-টি গোপন রাখুন এবং আপনার সংস্থার বাইরের কারো সাথে কখনো শেয়ার করবেন না: যে কেউ এটি হাতে পাবে সে আপনার নামে সফটওয়্যার স্বাক্ষর করতে পারবে। Windows-এ, একটি ফোল্ডার তৈরি করুন এবং ফাইলগুলো এতে সরান:

md c:codesigningcertificates
move code_signing_key.key c:codesigningcertificates
move code_signing_csr.txt c:codesigningcertificates

৭. আপনার CA-তে CSR জমা দিন

CSR ফাইলটি যেকোনো প্লেইন-টেক্সট এডিটরে খুলুন, যেমন Notepad, এবং এর সম্পূর্ণ বিষয়বস্তু, —–BEGIN CERTIFICATE REQUEST—– এবং —–END CERTIFICATE REQUEST—– লাইনসহ, আপনার সার্টিফিকেট অর্ডারের সময় এনরোলমেন্ট ফর্মে কপি করুন। একটি CSR ব্লক দেখতে এরকম:

-----BEGIN CERTIFICATE REQUEST-----
MIICvDCCAaQCAQAw...
...base64 encoded request...
-----END CERTIFICATE REQUEST-----

এই গাইডের শুরুর নিয়মটি মনে রাখুন: একটি প্রকাশ্যে বিশ্বস্ত কোড সাইনিং সার্টিফিকেটের জন্য, আপনার জমা দেওয়া CSR-টি অবশ্যই একটি সঙ্গতিপূর্ণ হার্ডওয়্যারে তৈরি ও সংরক্ষিত কী-এর সাথে সংশ্লিষ্ট হতে হবে। যদি আপনি উপরের ধাপগুলো দিয়ে একটি সফটওয়্যার কী তৈরি করে থাকেন, তাহলে সেটি শুধুমাত্র অভ্যন্তরীণ বা পরীক্ষামূলক সাইনিংয়ের জন্য ব্যবহার করুন। একটি পাবলিক CA অর্ডারের জন্য, YubiKey বা Luna HSM গাইড ব্যবহার করে আপনার টোকেন বা HSM থেকে CSR তৈরি করুন, অথবা টোকেন + শিপমেন্ট ডেলিভারি পদ্ধতি নির্বাচন করলে CA-কে কী তৈরি করতে দিন।

CSR তৈরির বাইরে সাধারণ OpenSSL সিনট্যাক্সের জন্য, OpenSSL কমান্ড রেফারেন্সটি একটি সহায়ক সহায়ক। আপনি আরও OpenSSL টিউটোরিয়াল এবং কোড সাইনিং টিউটোরিয়াল অন্বেষণ করতে পারেন, অথবা একটি CSR তৈরি করার অন্যান্য উপায় পড়তে পারেন।

আজ অর্ডার করার সময় SSL শংসাপত্রে 10% সংরক্ষণ করুন!

দ্রুত ইস্যু, শক্তিশালী এনক্রিপশন, 99.99% ব্রাউজার বিশ্বাস, নিবেদিত সমর্থন, এবং 25 দিনের অর্থ ফেরত গ্যারান্টি। কুপন কোড: SAVE10

উড়ন্ত একটি ড্রাগনের একটি বিস্তারিত চিত্র
লিখেছেন

SSL শংসাপত্রে বিশেষজ্ঞ অভিজ্ঞ বিষয়বস্তু লেখক। জটিল সাইবারসিকিউরিটি বিষয়গুলিকে পরিষ্কার, আকর্ষক সামগ্রীতে রূপান্তর করা। প্রভাবশালী বর্ণনার মাধ্যমে ডিজিটাল নিরাপত্তার উন্নতিতে অবদান রাখুন।