bg-tutorials

Tomcat-এ CSR তৈরি করার পদ্ধতি

এই টিউটোরিয়ালে দেখানো হয়েছে জাভা keytool ইউটিলিটি ব্যবহার করে Apache Tomcat-এর জন্য কীভাবে CSR (Certificate Signing Request) তৈরি করবেন। প্রক্রিয়াটি দুটি কমান্ডের সমন্বয়ে গঠিত: প্রথমে keytool -genkeypair একটি পছন্দসই এলিয়াসের অধীনে একটি কীস্টোর ও প্রাইভেট কী তৈরি করে, তারপর keytool -certreq সংশ্লিষ্ট CSR এক্সপোর্ট করে। পরবর্তীতে সাইন করা সার্টিফিকেট ইমপোর্ট করার সময়ও একই এলিয়াস পুনরায় ব্যবহার করা হয়, ফলে কী, CSR এবং পরবর্তী সার্টিফিকেট সবকিছুই একই জায়গায় থাকে।

যা যা প্রয়োজন হবে

  • একটি জাভা ইনস্টলেশন (JDK বা JRE) যাতে keytool কমান্ডটি ব্যবহারযোগ্য থাকে। keytool -help দিয়ে নিশ্চিত করুন।
  • যে সার্ভারে প্রাইভেট কী থাকবে, সেই সার্ভারে শেল বা টার্মিনাল অ্যাক্সেস। প্রাইভেট কী অবশ্যই এই সার্ভারেই থাকতে হবে।
  • আপনি যে সুনির্দিষ্ট ফুলি কোয়ালিফায়েড ডোমেইন নেম (FQDN) সুরক্ষিত করতে চান, যেমন www.yourdomain.com, এবং এর সাথে অতিরিক্ত যেসব ডোমেইন কভার করতে চান (SAN ফিল্ডের জন্য)।
  • CSR-এর ডিস্টিংগুইশড নেম-এর জন্য আপনার প্রতিষ্ঠানের আইনি তথ্য (দেশ, রাজ্য, শহর, প্রতিষ্ঠানের নাম)।

ধাপ ১: কীস্টোর ও প্রাইভেট কী তৈরি করুন

যদি আপনি ইতিমধ্যেই আপনার CSR তৈরি করে থাকেন, তাহলে সরাসরি CSR জমা দিন ধাপে যান এবং তারপর Tomcat-এ আপনার SSL সার্টিফিকেট ইনস্টল করুন অংশে যান।

সার্ভারে একটি টার্মিনাল খুলুন এবং PKCS12 ফরম্যাটে একটি নতুন কীস্টোর তৈরি করুন। PKCS12 হলো আধুনিক এবং পোর্টেবল স্ট্যান্ডার্ড, এবং JDK 9 থেকেই এটি জাভার ডিফল্ট কীস্টোর ফরম্যাট; পুরনো JKS ফরম্যাটটি এখন অপ্রচলিত। নিচের কমান্ডটি চালান:

keytool -genkeypair 
  -alias tomcat 
  -keyalg RSA -keysize 2048 
  -storetype PKCS12 
  -keystore yourdomain.p12 
  -validity 825

ফ্ল্যাগগুলোর অর্থ:

  • -alias tomcat: কীস্টোরের ভেতরের এন্ট্রির নাম। এমন একটি লেবেল বেছে নিন যা আপনি সহজে চিনতে পারবেন (সাধারণত tomcat বা আপনার ডোমেইন নাম)। এটি লিখে রাখুন। CSR তৈরির সময় এবং পরে সাইন করা সার্টিফিকেট ইমপোর্ট করার সময়ও আপনাকে ঠিক একই এলিয়াস পুনরায় ব্যবহার করতে হবে।
  • -keyalg RSA -keysize 2048: বর্তমানে ২০৪৮-বিট RSA কী-ই সর্বনিম্ন গ্রহণযোগ্য মান। নতুন কীস্টোরের ক্ষেত্রে দীর্ঘমেয়াদী কীর জন্য ৩০৭২ বিট একটি যুক্তিসঙ্গত আপগ্রেড হতে পারে। অধিকাংশ পাবলিক CA আরও ছোট ও দ্রুত কী চাইলে ECDSA (-keyalg EC -groupname secp256r1) গ্রহণ করে।
  • -storetype PKCS12: আধুনিক PKCS12 কীস্টোর বাধ্যতামূলকভাবে ব্যবহার করে। এর সংশ্লিষ্ট এক্সটেনশন হলো .p12 (বা .pfx)।
  • -keystore yourdomain.p12: যে কীস্টোর ফাইলটি তৈরি করতে হবে। আপনার মনে রাখার মতো একটি নাম দিয়ে এটি প্রতিস্থাপন করুন, এবং এই ফাইলটি সুরক্ষিত রাখুন; এতে আপনার প্রাইভেট কী থাকে।
  • -validity 825: কীস্টোরের ভেতরের সেলফ-সাইনড প্লেসহোল্ডার সার্টিফিকেটটি কতদিন বৈধ থাকবে। পরে CA থেকে পাওয়া সাইন করা সার্টিফিকেট এটি প্রতিস্থাপন করবে, তাই এই নির্দিষ্ট মান প্রোডাকশনের মেয়াদকে প্রভাবিত করে না।

এরপর keytool একটি কীস্টোর পাসওয়ার্ড চাইবে। একটি শক্তিশালী পাসওয়ার্ড বেছে নিন এবং তা আপনার সিক্রেট ম্যানেজারে সংরক্ষণ করুন: পরবর্তী প্রতিটি keytool কমান্ডে এবং Tomcat-এর server.xml-এ এটি প্রয়োজন হবে। PKCS12 কীস্টোরের ক্ষেত্রে কী পাসওয়ার্ড এবং কীস্টোর পাসওয়ার্ড একই হয়, তাই মনে রাখার জন্য একটিই পাসওয়ার্ড থাকে।

ধাপ ২: আপনার প্রতিষ্ঠানের তথ্য (DN) প্রবেশ করান

এখন keytool ডিস্টিংগুইশড নেম (DN) জানতে চাইবে: এগুলো হলো পরিচয়সংক্রান্ত ফিল্ড যা CSR-এ অন্তর্ভুক্ত থাকে। প্রতিটি প্রম্পটে আপনার প্রতিষ্ঠানের সঠিক এবং আইনি মান দিয়ে উত্তর দিন। বিরাম চিহ্ন এবং নির্ভুলতা গুরুত্বপূর্ণ: পাবলিক ব্যবসায়িক রেকর্ডের সাথে অমিল থাকলে CA তা প্রত্যাখ্যান করবে।

  • First and last name (CN): এটি keytool-এর ব্যবহৃত পরিভাষা মাত্র, কিন্তু আসলে এটি হলো Common Name ফিল্ড। আপনি যে সুনির্দিষ্ট FQDN সুরক্ষিত করছেন তা লিখুন, যেমন www.yourdomain.com, অথবা একটি ওয়াইল্ডকার্ড যেমন *.yourdomain.com। কোনো ব্যক্তির নাম লিখবেন না।
  • Organizational unit (OU): এই ফিল্ডটি আর পাবলিক CA-গুলো ইস্যু করে না, তাই এটি খালি রাখাই ভালো। এড়িয়ে যেতে Enter চাপুন।
  • Organization (O): আপনার কোম্পানির সম্পূর্ণ আইনি নাম, যেমন Your Company LLC
  • City or locality (L): পুরো শহরের নাম, যেমন San Jose। সংক্ষিপ্ত রূপ ব্যবহার করবেন না।
  • State or province (ST): পুরো রাজ্য বা প্রদেশের নাম, যেমন California। দুই অক্ষরের কোড ব্যবহার করবেন না।
  • Country code (C): দুই অক্ষরের ISO দেশ কোড, যেমন US, GB, DE

শেষ প্রম্পটের পর, keytool একটি সারাংশ দেখায় যেমন CN=www.yourdomain.com, OU=, O=Your Company LLC, L=San Jose, ST=California, C=US। নিশ্চিত করতে yes টাইপ করুন। এখন কীস্টোর ফাইলটিতে একটি এন্ট্রি তৈরি হয়ে গেছে: আপনার এলিয়াস, যাতে প্রাইভেট কী এবং একটি সেলফ-সাইনড প্লেসহোল্ডার সার্টিফিকেট থাকে।

আপনি যদি একটি নন-ইন্টারঅ্যাক্টিভ কমান্ড পছন্দ করেন, তাহলে DN ইনলাইনে দিয়ে প্রম্পটগুলো এড়িয়ে যেতে পারেন:

keytool -genkeypair 
  -alias tomcat 
  -keyalg RSA -keysize 2048 
  -storetype PKCS12 
  -keystore yourdomain.p12 
  -dname "CN=www.yourdomain.com, O=Your Company LLC, L=San Jose, ST=California, C=US" 
  -validity 825

ধাপ ৩: SAN সহ CSR তৈরি করুন

আধুনিক ব্রাউজার ও ক্লায়েন্টগুলো শুধু Common Name-এর বিরুদ্ধে নয়, বরং Subject Alternative Name (SAN) এক্সটেনশনের বিরুদ্ধে সার্টিফিকেট যাচাই করে। CSR-এ সরাসরি SAN গুলোর অনুরোধ করুন যাতে CA সেগুলো ইস্যুকৃত সার্টিফিকেটে অন্তর্ভুক্ত করে। ধাপ ১-এ ব্যবহৃত একই এলিয়াস ও কীস্টোর ব্যবহার করুন:

keytool -certreq 
  -alias tomcat 
  -keystore yourdomain.p12 
  -file yourdomain.csr 
  -ext san=dns:yourdomain.com,dns:www.yourdomain.com

ফ্ল্যাগগুলোর অর্থ:

  • -alias tomcat: অবশ্যই ধাপ ১-এর এলিয়াসের সাথে মিলতে হবে। এটিই সেই এলিয়াস যার প্রাইভেট কী দিয়ে রিকোয়েস্টটি সাইন করা হয়।
  • -keystore yourdomain.p12: অবশ্যই ধাপ ১-এর কীস্টোরের সাথে মিলতে হবে।
  • -file yourdomain.csr: CSR-এর আউটপুট ফাইলের নাম।
  • -ext san=dns:…: Subject Alternative Name এক্সটেনশন। সার্টিফিকেটকে অবশ্যই যেসব হোস্টনেম কভার করতে হবে, তার সবগুলো তালিকাভুক্ত করুন, এর মধ্যে বেয়ার অ্যাপেক্স (yourdomain.com) এবং www সাবডোমেইন উভয়ই অন্তর্ভুক্ত থাকা উচিত। আরও এন্ট্রি যোগ করতে কমা দিয়ে আলাদা করুন, যেমন dns:api.yourdomain.com

keytool কীস্টোর পাসওয়ার্ড চাইবে এবং বর্তমান ডিরেক্টরিতে yourdomain.csr নামে CSR লিখবে।

গুরুত্বপূর্ণ: আপনার এলিয়াস ও কীস্টোর সংরক্ষণ করুন

Tomcat-এ keytool ব্যবহারের সবচেয়ে সাধারণ ভুল হলো সাইন করা সার্টিফিকেটটি একটি নতুন এলিয়াসে ইমপোর্ট করা। এমনটি করলে সার্টিফিকেটটি প্রাইভেট কী ছাড়াই একটি স্বতন্ত্র বিশ্বস্ত এন্ট্রি হিসেবে সংরক্ষিত হয়, এবং তখন TLS কাজ করবে না। সাইন করা রিপ্লাইটি সবসময় সেই একই এলিয়াসে ইমপোর্ট করুন যেখানে প্রাইভেট কী রয়েছে (ধাপ ১-এর এলিয়াস)।

টার্মিনাল বন্ধ করার আগে এখনই এই তিনটি মান নোট করে রাখুন:

  • এলিয়াস (এই গাইডে, tomcat)।
  • কীস্টোর ফাইলের পাথ (উদাহরণস্বরূপ yourdomain.p12)।
  • কীস্টোর পাসওয়ার্ড

যদি আপনি নিশ্চিত না থাকেন যে কোন এলিয়াসে আপনার কী রয়েছে, তাহলে কীস্টোরের কনটেন্ট তালিকাভুক্ত করুন এবং যে এন্ট্রির টাইপ PrivateKeyEntry তা খুঁজে বের করুন:

keytool -list -v -keystore yourdomain.p12

ধাপ ৪: জমা দেওয়ার আগে CSR যাচাই করুন

CA যাচাই করার আগেই DN-এ থাকা টাইপো বা অনুপস্থিত SAN চিহ্নিত করুন। keytool দিয়ে CSR প্রিন্ট করুন:

keytool -printcertreq -file yourdomain.csr

অথবা, যদি OpenSSL ইনস্টল করা থাকে, তাহলে এর পরিবর্তে এটি ব্যবহার করতে পারেন:

openssl req -noout -text -in yourdomain.csr

আউটপুটে তিনটি বিষয় নিশ্চিত করুন: Subject-এ আপনার সঠিক DN দেখাচ্ছে কিনা, Subject Alternative Name-এ আপনার প্রয়োজনীয় সবগুলো হোস্টনেম রয়েছে কিনা, এবং Public-Key-এর আকার আপনি যা চেয়েছিলেন তার সাথে মিলছে কিনা (2048-bit RSA, অথবা আপনি যা বেছে নিয়েছেন)। একই যাচাই ব্রাউজারে করতে আপনি আমাদের CSR ডিকোডার-এও CSR পেস্ট করতে পারেন।

ধাপ ৫: আপনার সার্টিফিকেট অথরিটির কাছে CSR জমা দিন

যেকোনো টেক্সট এডিটরে yourdomain.csr খুলুন। ফাইলটি প্লেইন টেক্সট, যা —–BEGIN CERTIFICATE REQUEST—– দিয়ে শুরু হয় এবং —–END CERTIFICATE REQUEST—– দিয়ে শেষ হয়। পুরো ব্লকটি কপি করুন, এর শুরু ও শেষের লাইনসহ, এবং আপনার CA-এর কাছে চেকআউট করার সময় CSR ফিল্ডে এটি পেস্ট করুন। Windows-এ, পুরো টেক্সট নির্বাচন করতে Ctrl + A তারপর Ctrl + C ব্যবহার করুন; macOS-এ, Cmd + A তারপর Cmd + C ব্যবহার করুন।

CA আপনার রিকোয়েস্ট যাচাই করে সার্টিফিকেট ইস্যু করার পর, Tomcat-এ কীভাবে আপনার SSL সার্টিফিকেট ইনস্টল করবেন অংশে এগিয়ে যান। আপনি সাইন করা সার্টিফিকেটটি একই কীস্টোরে থাকা একই এলিয়াসে ইমপোর্ট করবেন, এবং তারপর Tomcat-এর HTTPS কানেক্টরকে সেই কীস্টোরের দিকে নির্দেশ করবেন।

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

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

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

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