bg-tutorials

Postfix-এ কীভাবে একটি CSR তৈরি করবেন

এই গাইডে দেখানো হয়েছে কীভাবে Postfix-এ CSR (Certificate Signing Request) তৈরি করবেন OpenSSL কমান্ড লাইন ব্যবহার করে। Postfix নিজে কোনো কী বা CSR তৈরি করে না; এটি OpenSSL দ্বারা তৈরি ফাইলগুলো ব্যবহার করে এবং সেগুলোকে /etc/postfix/main.cf থেকে রেফারেন্স করে। আপনি একটি মাত্র কমান্ড চালাবেন যা একসাথে দুটি ফাইল তৈরি করে: একটি প্রাইভেট কী যা সার্ভারে থেকে যায়, এবং CSR যা আপনি আপনার সার্টিফিকেট অথরিটি (CA)-এর কাছে জমা দেন।

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

প্রয়োজনীয়তা

  • Postfix চালানো সার্ভারে রুট বা sudo অ্যাক্সেস।
  • OpenSSL ইনস্টল করা থাকতে হবে। এটি প্রতিটি মূলধারার Linux ডিস্ট্রিবিউশনে বেস সিস্টেমের সাথে আসে; openssl version দিয়ে চেক করুন।
  • সার্টিফিকেটে থাকা প্রয়োজনীয় সম্পূর্ণ যোগ্যতাসম্পন্ন মেইল হোস্টনেম, উদাহরণস্বরূপ mail.example.com। এটি অবশ্যই সেই MX রেকর্ডের সাথে মিলতে হবে যার সাথে ক্লায়েন্টরা STARTTLS-এর মাধ্যমে সংযোগ করে, শুধু খালি apex ডোমেইন নয়।

ধাপ ১: কী এবং CSR-এর জন্য একটি ডিরেক্টরি প্রস্তুত করুন

Postfix TLS সংক্রান্ত উপাদানগুলো /etc/postfix/-এর অধীনে নিজস্ব একটি ডিরেক্টরিতে রাখুন যাতে অনুমতি (permissions) সহজে পরিচালনা করা যায়। এটি তৈরি করুন এবং শুধুমাত্র রুটের জন্য লক করে দিন:

sudo mkdir -p /etc/postfix/ssl
sudo chmod 700 /etc/postfix/ssl
cd /etc/postfix/ssl

এই ডিরেক্টরির ভেতরেই আপনি কী এবং CSR তৈরি করবেন, তারপর CA সার্টিফিকেট ইস্যু করার পর main.cf থেকে এগুলো রেফারেন্স করবেন।

ধাপ ২: প্রাইভেট কী এবং CSR তৈরি করুন

নিচের কমান্ডটি চালান। এটি এক ধাপেই প্রাইভেট কী এবং CSR তৈরি করে এবং সাবজেক্ট অলটারনেটিভ নেম (SAN) অন্তর্ভুক্ত করে, যা আধুনিক ব্রাউজার, মেইল ক্লায়েন্ট এবং CA-গুলোর জন্য প্রয়োজন। SAN-এ অবশ্যই মেইল হোস্টনেম (যেটির দিকে আপনার MX রেকর্ড নির্দেশ করে) থাকতে হবে, খালি apex ডোমেইন নয়:

sudo openssl req -new -newkey rsa:2048 -nodes 
-keyout /etc/postfix/ssl/mail.example.com.key 
-out /etc/postfix/ssl/mail.example.com.csr 
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=mail.example.com" 
-addext "subjectAltName=DNS:mail.example.com"

প্রতিটি অংশ কী করে তা এখানে দেখুন:

  • req -new একটি নতুন সার্টিফিকেট সাইনিং রিকোয়েস্ট তৈরি করে।
  • -newkey rsa:2048 একটি নতুন ২০৪৮-বিট RSA প্রাইভেট কী তৈরি করে। পাবলিক সার্টিফিকেটের জন্য বর্তমান সর্বনিম্ন হলো ২০৪৮ বিট; আরও বড় কী-এর জন্য আপনি rsa:4096 ব্যবহার করতে পারেন।
  • -nodes প্রাইভেট কী-কে এনক্রিপ্ট না করে রাখে (কোনো পাসফ্রেজ নেই), যাতে Postfix বুট করার সময় কোনো প্রম্পট ছাড়াই এটি লোড করতে পারে।
  • -keyout প্রাইভেট কী লেখে। এই ফাইলটি গোপন রাখুন এবং CA সহ কারো কাছে কখনো পাঠাবেন না।
  • -out CSR লেখে যা আপনি CA-এর কাছে জমা দেন।
  • -subj সাবজেক্ট ফিল্ডগুলো সরাসরি পূরণ করে দেয় যাতে কমান্ডটি ইন্টারঅ্যাক্টিভ প্রম্পট ছাড়াই চলতে পারে। CN (Common Name) কে আপনার মেইল হোস্টনেম-এ সেট করুন।
  • -addext “subjectAltName=…” SAN এন্ট্রি যোগ করে। CA-গুলো SAN তালিকার বিপরীতে ইস্যু করে, তাই মেইল হোস্টনেম এখানে অবশ্যই থাকতে হবে।

mail.example.com-কে সেই আসল হোস্টনেম দিয়ে প্রতিস্থাপন করুন যার সাথে ক্লায়েন্টরা সংযোগ করে (প্রায়ই আপনার MX রেকর্ডের মতো একই নাম), এবং আপনার প্রতিষ্ঠানের সাথে মেলাতে -subj মানগুলো সম্পাদনা করুন। দুই অক্ষরের দেশ কোড (C) অবশ্যই বড় হাতের অক্ষরে হতে হবে, উদাহরণস্বরূপ US বা GB। ডোমেইন-ভ্যালিডেটেড (DV) সার্টিফিকেটের জন্য, প্রতিষ্ঠান সংক্রান্ত ফিল্ডগুলো যাচাই করা হয় না, তবে কমান্ডে তবুও বৈধ মান দরকার। আধুনিক OpenSSL ডিফল্টভাবে SHA-256 দিয়ে CSR সাইন করে, যা প্রতিটি পাবলিক CA-এর প্রয়োজনীয়তা।

যদি আপনি -subj-এর পরিবর্তে ইন্টারঅ্যাক্টিভভাবে ফিল্ডগুলো পূরণ করতে চান, তাহলে সেই লাইনটি বাদ দিন এবং OpenSSL প্রতিটি মানের জন্য আপনাকে প্রম্পট করবে:

sudo openssl req -new -newkey rsa:2048 -nodes 
-keyout /etc/postfix/ssl/mail.example.com.key 
-out /etc/postfix/ssl/mail.example.com.csr 
-addext "subjectAltName=DNS:mail.example.com"

প্রম্পট করা হলে, Enter চেপে challenge password এবং optional company name খালি রাখুন। CA-গুলো এই ফিল্ডগুলো উপেক্ষা করে, এবং একটি challenge password পরে সমস্যার সৃষ্টি করে।

একাধিক হোস্টনেম কভার করা

যদি একই Postfix ইনস্ট্যান্স একাধিক নামে সাড়া দেয় (উদাহরণস্বরূপ, উভয় mail.example.com এবং smtp.example.com, বা মেইল এবং ওয়েবমেইলের জন্য একটি শেয়ার্ড সার্টিফিকেট), তাহলে SAN মানের মধ্যে প্রতিটি হোস্টনেম কমা দিয়ে আলাদা করে তালিকাভুক্ত করুন:

-addext "subjectAltName=DNS:mail.example.com,DNS:smtp.example.com,DNS:webmail.example.com"

Common Name-এ এখনও প্রাথমিক মেইল হোস্টনেম থাকা উচিত। খালি apex ডোমেইনকে SAN-এ যোগ করা তখনই উপযোগী যদি মেইল ক্লায়েন্টগুলো সরাসরি এর সাথে সংযোগ করে; যদি আপনার MX রেকর্ড একটি সাব-হোস্টনেম-এর দিকে নির্দেশ করে, তাহলে সার্টিফিকেটে apex-এর প্রয়োজন নেই।

ECDSA কী পছন্দ করেন?

একই নিরাপত্তা স্তরে ECDSA কী RSA-এর তুলনায় ছোট এবং দ্রুত, এবং বর্তমান প্রতিটি মেইল ক্লায়েন্ট এবং CA দ্বারা সমর্থিত। এর পরিবর্তে একটি P-256 (prime256v1) কী এবং CSR তৈরি করতে, -newkey আর্গুমেন্টটি পরিবর্তন করুন:

sudo openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -pkeyopt ec_param_enc:named_curve -nodes 
-keyout /etc/postfix/ssl/mail.example.com.key 
-out /etc/postfix/ssl/mail.example.com.csr 
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=mail.example.com" 
-addext "subjectAltName=DNS:mail.example.com"

ধাপ ৩: প্রাইভেট কী সুরক্ষিত করুন

প্রাইভেট কী-কে লক করুন যাতে শুধুমাত্র রুট এটি পড়তে পারে। Postfix প্রিভিলেজ ড্রপ করার আগে তার TLS উপাদানগুলো খোলে, তাই রুট মালিকানা এবং মোড 600 উভয়ই সঠিক এবং প্রয়োজনীয়:

sudo chown root:root /etc/postfix/ssl/mail.example.com.key
sudo chmod 600 /etc/postfix/ssl/mail.example.com.key

CSR ফাইলটি গোপনীয় নয় (এতে শুধু পাবলিক কী এবং আপনার সাবজেক্ট বিবরণ থাকে), তবে এটিকে একই লকড-ডাউন ডিরেক্টরিতে রাখলে লেআউট পরিপাটি থাকে।

ধাপ ৪: CSR যাচাই করুন

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

openssl req -noout -text -verify -in /etc/postfix/ssl/mail.example.com.csr

আউটপুটে verify OK দেখুন, চেক করুন Subject লাইনে আপনার মেইল হোস্টনেম Common Name হিসেবে দেখানো হচ্ছে কিনা, এবং নিশ্চিত করুন X509v3 Subject Alternative Name অংশে আপনার প্রত্যাশিত প্রতিটি হোস্টনেম তালিকাভুক্ত আছে। যদি কোনো SAN অনুপস্থিত থাকে, তাহলে সঠিক -addext মান দিয়ে CSR পুনরায় তৈরি করুন: একটি CA ইস্যু করার পরে হোস্টনেম যোগ করতে পারে না। আপনি আমাদের অনলাইন CSR Decoder-এও CSR পেস্ট করে ব্রাউজারে এই ফিল্ডগুলো চেক করতে পারেন।

ধাপ ৫: CSR জমা দিন

CSR ফাইলটি খুলুন এবং এর সম্পূর্ণ বিষয়বস্তু কপি করুন, BEGIN এবং END লাইনসহ:

cat /etc/postfix/ssl/mail.example.com.csr

ব্লকটি এরকম দেখতে হয়। প্রথম লাইন থেকে শেষ লাইন পর্যন্ত সবকিছু কপি করুন, BEGIN এবং END মার্কারের দুই পাশে থাকা পাঁচটি হাইফেনসহ:

-----BEGIN CERTIFICATE REQUEST-----
MIIC...base64-encoded data...AB
-----END CERTIFICATE REQUEST-----

সেই ব্লকটি আপনার SSL অর্ডার ফর্মে পেস্ট করুন। CA CSR যাচাই করে সার্টিফিকেট ইস্যু করার পর, এটি স্থাপন করতে আমাদের Postfix SSL ইনস্টলেশন নির্দেশনা অনুসরণ করুন। .key ফাইলটি সার্ভারে রাখুন: STARTTLS পরিবেশন করার জন্য এটি ইস্যু করা সার্টিফিকেটের সাথে প্রয়োজন, এবং আপনাকে অবশ্যই এটি CA বা অন্য কারো কাছে পাঠানো উচিত নয়।

যদি আপনি কমান্ড লাইন ব্যবহার না করতে চান, তাহলে আমাদের CSR Generator দিয়ে রিকোয়েস্ট তৈরি করুন এবং ফলাফলটি আপনার অর্ডারে পেস্ট করুন। জেনারেটরটি একটি মিলে যাওয়া প্রাইভেট কী ফেরত দেয় যা আপনি সার্ভারে একই পাথে রাখবেন।

Postfix-এ ফাইলগুলো কোথায় যায়

প্রসঙ্গের জন্য, একবার CA সার্টিফিকেট এবং ইন্টারমিডিয়েট (CA bundle) ফেরত দিলে, আপনার সবেমাত্র তৈরি করা ফাইলগুলো Postfix-এ কীভাবে সংযুক্ত করা হয় তা এখানে দেখানো হলো। Postfix 3.4 এবং তার পরবর্তী সংস্করণে, প্রস্তাবিত একক-নির্দেশনা ফর্মটিতে একটি PEM ফাইল থাকে যাতে প্রাইভেট কী থাকে এবং তারপরে সম্পূর্ণ সার্টিফিকেট চেইন থাকে:

cat mail.example.com.key mail.example.com.crt intermediate.pem 
> /etc/postfix/ssl/mail.example.com.chain.pem
sudo chmod 600 /etc/postfix/ssl/mail.example.com.chain.pem

তারপর /etc/postfix/main.cf-এ:

smtpd_tls_chain_files = /etc/postfix/ssl/mail.example.com.chain.pem
smtpd_tls_security_level = may

Postfix 3.4-এর চেয়ে পুরনো সংস্করণে, লিগ্যাসি জোড়া নির্দেশনা ব্যবহার করুন, যেখানে কী এবং একটি ফুল-চেইন সার্টিফিকেট আলাদা ফাইলে রাখা হয়:

smtpd_tls_cert_file = /etc/postfix/ssl/mail.example.com.fullchain.crt
smtpd_tls_key_file  = /etc/postfix/ssl/mail.example.com.key
smtpd_tls_security_level = may

সম্পূর্ণ ইনস্টল ওয়াক-থ্রু, পোর্ট ৫৮৭-এ সাবমিশন সার্ভিস এবং OpenSSL দিয়ে যাচাইকরণসহ, আমাদের Postfix SSL ইনস্টলেশন গাইড-এ রয়েছে।

অন্যান্য মেইল প্ল্যাটফর্মে CSR তৈরি করুন

ভিন্ন একটি মেইল সার্ভার বা গেটওয়ে চালাচ্ছেন? আমাদের অন্যান্য CSR গাইড দেখুন:

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

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

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

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