এই গাইডে দেখানো হয়েছে কীভাবে Debian-এ CSR (Certificate Signing Request) তৈরি করবেন OpenSSL কমান্ড লাইন ব্যবহার করে। আপনি SSH-এর মাধ্যমে একটি মাত্র কমান্ড চালাবেন যা একসাথে দুটি ফাইল তৈরি করে: একটি প্রাইভেট কী যা আপনার সার্ভারে থেকে যায়, এবং CSR যা আপনি আপনার সার্টিফিকেট অথরিটি (CA)-এর কাছে জমা দেন। এই ধাপগুলো Debian 13 (trixie), Debian 12 (bookworm), এবং আগের রিলিজগুলোতে কাজ করে, কারণ OpenSSL বেস সিস্টেমেই থাকে।
CSR হলো একটি ছোট টেক্সট ব্লক যাতে আপনার ডোমেইনের বিবরণ এবং একটি পাবলিক কী থাকে। CA এটি পড়ে, আপনার অনুরোধ যাচাই করে, এবং একটি সার্টিফিকেট ইস্যু করে যা এর সাথে তৈরি হওয়া প্রাইভেট কী-এর সাথে মিলে যায়। প্রাইভেট কী কখনো আপনার সার্ভার ছেড়ে যায় না, তাই এটি নিরাপদ রাখুন: আপনি যদি এটি হারিয়ে ফেলেন, তাহলে ইস্যু করা সার্টিফিকেট ব্যবহারের অযোগ্য হয়ে যাবে এবং আপনাকে আবার শুরু থেকে করতে হবে।
ধাপ ১: আপনার Debian সার্ভারে লগইন করুন
একটি টার্মিনাল খুলুন এবং SSH-এর মাধ্যমে সার্ভারে সংযোগ করুন। your-user-কে আপনার অ্যাকাউন্টের নাম দিয়ে এবং your-server-ip-কে সার্ভারের IP ঠিকানা বা হোস্টনেম দিয়ে প্রতিস্থাপন করুন:
ssh your-user@your-server-ip
OpenSSL Debian বেস সিস্টেমে অন্তর্ভুক্ত থাকে, তাই আলাদা করে কিছু ইনস্টল করার প্রয়োজন নেই। এটি উপলব্ধ কিনা তা নিশ্চিত করতে, ভার্সন চেক করুন:
openssl version
ধাপ ২: প্রাইভেট কী এবং CSR তৈরি করুন
নিচের কমান্ডটি চালান। এটি একই ধাপে প্রাইভেট কী এবং CSR তৈরি করে এবং সাবজেক্ট অল্টারনেটিভ নেম (SANs) অন্তর্ভুক্ত করে, যা আধুনিক ব্রাউজার এবং CA গুলোর প্রয়োজন হয়। এটি এমন একটি ডিরেক্টরি থেকে চালান যেখানে আপনি লিখতে পারেন, যেমন আপনার হোম ডিরেক্টরি:
openssl req -new -newkey rsa:2048 -nodes
-keyout mywebsite.key
-out mywebsite.csr
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=mywebsite.com"
-addext "subjectAltName=DNS:mywebsite.com,DNS:www.mywebsite.com"
প্রতিটি অংশ কী করে তা এখানে দেওয়া হলো:
- req -new একটি নতুন সার্টিফিকেট সাইনিং রিকোয়েস্ট তৈরি করে।
- -newkey rsa:2048 একটি নতুন 2048-বিট RSA প্রাইভেট কী তৈরি করে। 2048 বিট বর্তমানে পাবলিক সার্টিফিকেটের জন্য ন্যূনতম মান; আপনি বড় কী-এর জন্য rsa:4096 ব্যবহার করতে পারেন।
- -nodes প্রাইভেট কী-কে এনক্রিপ্ট না করে রাখে (কোনো পাসফ্রেজ ছাড়া), যাতে ওয়েব সার্ভার পাসওয়ার্ড না চেয়েই শুরু হতে পারে।
- -keyout mywebsite.key প্রাইভেট কী লেখে। এই ফাইলটি গোপন রাখুন এবং কখনো কারো কাছে পাঠাবেন না।
- -out mywebsite.csr CSR লেখে যা আপনি CA-এর কাছে জমা দেবেন।
- -subj সাবজেক্ট ফিল্ডগুলো ইনলাইনভাবে পূরণ করে যাতে কমান্ডটি ইন্টারঅ্যাক্টিভ প্রম্পট ছাড়াই চলে। আপনার সম্পূর্ণ যোগ্য ডোমেইন নাম দিয়ে CN (Common Name) সেট করুন।
- -addext “subjectAltName=…” SAN এন্ট্রিগুলো যোগ করে। CA-রা SAN তালিকার বিপরীতে সার্টিফিকেট ইস্যু করে, তাই সার্টিফিকেটটি যেসব হোস্টনেম কভার করবে সবগুলো অন্তর্ভুক্ত করুন।
mywebsite.com-কে আপনার আসল ডোমেইন দিয়ে প্রতিস্থাপন করুন, এবং -subj মানগুলো আপনার প্রতিষ্ঠানের সাথে মিলিয়ে সম্পাদনা করুন। দুই-অক্ষরের দেশের কোড (C) অবশ্যই বড় হাতের অক্ষরে হতে হবে, যেমন US বা GB। ডোমেইন-ভেরিফায়েড (DV) সার্টিফিকেটের জন্য, প্রতিষ্ঠানের ফিল্ডগুলো যাচাই করা হয় না, তবে কমান্ডটির তবুও বৈধ মান প্রয়োজন।
যদি আপনি -subj এর পরিবর্তে ইন্টারঅ্যাক্টিভভাবে ফিল্ড পূরণ করতে চান, তাহলে সেই লাইনটি বাদ দিন এবং OpenSSL প্রতিটি মানের জন্য আপনাকে প্রম্পট করবে:
openssl req -new -newkey rsa:2048 -nodes
-keyout mywebsite.key
-out mywebsite.csr
-addext "subjectAltName=DNS:mywebsite.com,DNS:www.mywebsite.com"
প্রম্পট করা হলে, challenge password এবং optional company name খালি রাখুন Enter চেপে। CA-রা এই ফিল্ডগুলো উপেক্ষা করে, এবং একটি challenge password পরে সমস্যা তৈরি করতে পারে।
আরো ডোমেইন বা ওয়াইল্ডকার্ড যোগ করা
SAN তালিকায় আরো হোস্টনেম যোগ করুন, কমা দিয়ে আলাদা করে। উদাহরণস্বরূপ, একটি API সাবডোমেইন অন্তর্ভুক্ত করতে:
-addext "subjectAltName=DNS:mywebsite.com,DNS:www.mywebsite.com,DNS:api.mywebsite.com"
ওয়াইল্ডকার্ড সার্টিফিকেটের জন্য, *.mywebsite.com ব্যবহার করুন। একটি ওয়াইল্ডকার্ড এক লেভেলের সাবডোমেইন কভার করে কিন্তু খালি ডোমেইনকে কভার করে না, তাই আপনি যদি অ্যাপেক্সকেও কভার করতে চান তাহলে দুটোই তালিকাভুক্ত করুন:
-addext "subjectAltName=DNS:*.mywebsite.com,DNS:mywebsite.com"
ECDSA কী পছন্দ করেন?
ECDSA কী একই নিরাপত্তা স্তরে RSA-এর তুলনায় ছোট এবং দ্রুততর, এবং ব্যাপকভাবে সমর্থিত। একটি P-256 (prime256v1) কী এবং CSR তৈরি করতে, -newkey আর্গুমেন্টটি পরিবর্তন করুন:
openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -pkeyopt ec_param_enc:named_curve -nodes
-keyout mywebsite.key
-out mywebsite.csr
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=mywebsite.com"
-addext "subjectAltName=DNS:mywebsite.com,DNS:www.mywebsite.com"
আধুনিক OpenSSL ডিফল্টভাবে SHA-256 দিয়ে CSR সাইন করে, যা CA-দের প্রয়োজনীয়তা পূরণ করে। আলাদা ডাইজেস্ট ফ্ল্যাগ যোগ করার প্রয়োজন নেই।
ধাপ ৩: CSR যাচাই করুন
অনুরোধটি জমা দেওয়ার আগে, নিশ্চিত করুন যে এতে সঠিক ডোমেইন এবং SAN রয়েছে এবং এর স্বাক্ষর বৈধ। এই কমান্ডটি ডিকোড করা কন্টেন্ট প্রিন্ট করে এবং স্থানীয়ভাবে স্বাক্ষর যাচাই করে:
openssl req -noout -text -verify -in mywebsite.csr
আউটপুটে verify OK খুঁজুন, চেক করুন যে Subject লাইনে আপনার Common Name দেখানো হচ্ছে, এবং নিশ্চিত করুন যে X509v3 Subject Alternative Name বিভাগে আপনার প্রত্যাশিত সব হোস্টনেম তালিকাভুক্ত আছে। যদি কোনো SAN অনুপস্থিত থাকে, সঠিক -addext মান দিয়ে CSR পুনরায় তৈরি করুন। আপনি ব্রাউজারে এই ফিল্ডগুলো চেক করতে আমাদের অনলাইন CSR ডিকোডার-এও CSR পেস্ট করতে পারেন।
ধাপ ৪: CSR জমা দিন
CSR ফাইলটি খুলুন এবং এর সম্পূর্ণ বিষয়বস্তু কপি করুন, BEGIN এবং END লাইন সহ:
cat mywebsite.csr
ব্লকটি দেখতে এমন হবে। প্রথম লাইন থেকে শেষ লাইন পর্যন্ত সবকিছু কপি করুন, BEGIN এবং END মার্কারের প্রতিটি পাশে থাকা পাঁচটি হাইফেন সহ:
-----BEGIN CERTIFICATE REQUEST-----
MIIC...base64-encoded data...AB
-----END CERTIFICATE REQUEST-----
সেই ব্লকটি আপনার SSL অর্ডার ফর্মে পেস্ট করুন। CA যখন CSR যাচাই করে এবং SSL সার্টিফিকেট ইস্যু করে, তখন এটি ডিপ্লয় করতে Debian SSL ইনস্টলেশন নির্দেশাবলী অনুসরণ করুন। mywebsite.key ফাইলটি সার্ভারে রাখুন: HTTPS সক্রিয় করতে ইস্যু করা সার্টিফিকেটের সাথে এটি একসাথে প্রয়োজন, এবং আপনাকে কখনো এটি CA বা অন্য কারো কাছে পাঠাতে হবে না।
আপনি যদি কমান্ড লাইন ব্যবহার না করতে চান, তাহলে আপনি আমাদের CSR জেনারেটর দিয়ে অনুরোধটি তৈরি করতে পারেন এবং ফলাফলটি আপনার অর্ডারে পেস্ট করতে পারেন।
অন্যান্য প্ল্যাটফর্মে CSR তৈরি করুন
ভিন্ন লিনাক্স ডিস্ট্রিবিউশন বা সার্ভার ব্যবহার করছেন? আমাদের অন্যান্য CSR গাইড দেখুন:
আজ অর্ডার করার সময় SSL শংসাপত্রে 10% সংরক্ষণ করুন!
দ্রুত ইস্যু, শক্তিশালী এনক্রিপশন, 99.99% ব্রাউজার বিশ্বাস, নিবেদিত সমর্থন, এবং 25 দিনের অর্থ ফেরত গ্যারান্টি। কুপন কোড: SAVE10

