ক্লায়েন্ট সার্টিফিকেট হারিয়ে গেছে? নামে নয়, সিরিয়াল দিয়ে বাতিল করুন
সার্টিফিকেট ফাইল অনুপস্থিত থাকলেও রেকর্ড অনুপস্থিত নয়। বাতিলকরণ CA যে সিরিয়ালে স্বাক্ষর করেছে তার উপর কাজ করে, তাই প্রতিস্থাপন ইস্যু করার আগে সেই বস্তুটি খুঁজুন।
আপনার ক্লায়েন্টের সার্টিফিকেট ফাইল চলে গেছে, আর স্বাভাবিক প্রতিক্রিয়া হলো নামটি বাতিল করে নতুন একটি ইস্যু করা। সেই প্রতিক্রিয়া মূল সার্টিফিকেটকে বৈধ রেখে দেয়, কারণ বাতিলকরণ কোনো লেবেলের উপর নয়, সিরিয়াল নম্বরের উপর কাজ করে। CA প্রায় নিশ্চিতভাবেই যা ইস্যু করেছে তার একটি অনুলিপি এখনও রাখে, আর সেই অনুলিপি খুঁজে পাওয়াই পুরো কাজ।
ফাইল হারানো মানে CA-এর রেকর্ড হারানো নয়
একটি Easy-RSA PKI তার ইস্যু করা পাবলিক সার্টিফিকেট রাখে, আর সাম্প্রতিক সংস্করণগুলো PKI-এর certs_by_serial ডিরেক্টরিতে সিরিয়াল অনুযায়ী অনুলিপিও সংরক্ষণ করে। কিছু বাতিল করতে প্রাইভেট কী লাগে না। গুরুত্বপূর্ণ হলো CA যে সঠিক সার্টিফিকেটে স্বাক্ষর করেছে, যা CA-এর কাছে আগেই আছে।
সঠিক PKI-এর ব্যাকআপ করা অনুলিপিতে কাজ করুন, যে প্রশাসকের এটি মালিকানা তার সঙ্গে। বাতিলকরণ একটি নিরীক্ষাযোগ্য কাজ, মাঝরাতে প্রোডাকশন ডেটাবেসে করা মেরামত নয়।
ক্লায়েন্টের ইনলাইন পাবলিক সার্টিফিকেটের একটি অনুলিপিও কাজে দেবে, যদি ডিপ্লয়মেন্ট একটি রেখে থাকে।
আগে ইস্যুকারী ও সিরিয়াল পড়ুন
উদ্ধার করা PEM পরীক্ষা করুন এবং ইস্যুকারী, সিরিয়াল, সাবজেক্ট ও বৈধতার সময়সীমা লিখে রাখুন। সিরিয়াল একটি ইস্যুকারীর পরিসরে অনন্য, আপনার সব CA জুড়ে নয়, তাই ইস্যুকারী পরিচয়ের অংশ। যদি একাধিক সার্টিফিকেট একই সাবজেক্ট শেয়ার করে, তবে সেই সিরিয়ালগুলোই তাদের আলাদা করে।
মানগুলো CA-এর রেকর্ড এবং যে ডিভাইস বা ব্যক্তি সার্টিফিকেটটি ধরে আছে বলে আপনি মনে করেন তার সঙ্গে মিলিয়ে দেখুন।
একটি কমন নেম পুনরায় ব্যবহার করা যায়, এবং সাধারণত হয়ও। সিরিয়ালগুলো লিখে না রেখে কোন সার্টিফিকেট প্রত্যাহার করবেন তা ঠিক করবেন না।
নতুন সার্টিফিকেট বাতিল করলে কিছুই হয় না কেন
একই কমন নেমে প্রতিস্থাপন ইস্যু করলে ভিন্ন সিরিয়ালের দ্বিতীয় সার্টিফিকেট তৈরি হয়। প্রতিস্থাপনটি বাতিল করলে নতুনটি প্রত্যাহার হয় আর মূলটি মেয়াদ শেষ পর্যন্ত বৈধ থাকে। CA-এর দৃষ্টিতে এগুলো দুটি স্বতন্ত্র বস্তু, আর CRL নাম নয়, সিরিয়াল তালিকাভুক্ত করে। ঠিক এই কারণেই CA ইনডেক্স প্রতিটি ইস্যু করা সার্টিফিকেটের জন্য একটি সারি রাখে।
একই বিভ্রান্তি উল্টো ভুল তৈরি করে: ক্লায়েন্টের ফাইল মুছে ফেলা এবং ধরে নেওয়া যে CA এটি ভুলে গেছে। ক্লায়েন্টে মুছে ফেলা কোনো বাতিলকরণ ঘটনা নয়, আর যার কাছে অনুলিপি আছে তার জন্য সার্টিফিকেট কাজ করতে থাকে।
দুটি ভুলই আসে নামটিকে পরিচয় হিসেবে গণ্য করা থেকে।
সিরিয়াল যে সার্টিফিকেটের নাম বলে সেটিই বাতিল করুন
CA স্পর্শ করার আগে বস্তুটি চিহ্নিত করুন: openssl x509 -in recovered-client.pem -noout -issuer -serial -subject -dates এক পাসে চারটি মান ছাপে, আর CA সংরক্ষণের সঙ্গে যে মানটি মেলাবেন তা হলো সিরিয়াল। Easy-RSA সেই সংরক্ষণ pki/certs_by_serial-এর অধীনে রাখে, প্রতিটি সিরিয়ালের নামে একটি ফাইল। বাতিল করার কমান্ড সিরিয়াল নয়, কমন নেম নেয়, তাই সংরক্ষিত ফাইলটি pki/issued/<common-name>.crt-এ অনুলিপি করুন এবং নামটিকে আপনি যে বস্তু চিহ্নিত করেছেন তার দিকে নির্দেশ করতে দিন। PKI ডিরেক্টরি থেকে easyrsa revoke <common-name> চালান, তারপর দেখুন index.txt-এ সংশ্লিষ্ট সারিটি R-এ বদলেছে কি না। সিরিয়াল হলো বস্তু বাছাই করার উপায়, কমান্ড যে আর্গুমেন্ট গ্রহণ করে তা নয়।
openssl x509 -in recovered-client.pem -noout -issuer -serial -subject -dates
cp pki/certs_by_serial/A1B2C3D4.pem pki/issued/client-01.crt
./easyrsa revoke client-01
grep -n client-01 pki/index.txt
./easyrsa gen-crl
যদি index.txt R না দেখায়, তবে থামুন এবং CRL তৈরি করার আগে ত্রুটিটি পড়ুন, কারণ এখনও বৈধ একটি রেকর্ড থেকে তৈরি CRL কিছুই প্রত্যাহার করে না। সারি বদলানোর পরেই আপনি easyrsa gen-crl চালাবেন এবং ফাইল বিতরণে এগোবেন।
CRL যেখানে সত্যিই প্রয়োগ হয় সেখানেই প্রকাশ করুন
PKI-এর সমর্থিত কর্মপ্রবাহে নতুন CRL তৈরি করুন, তারপর এই ইস্যুকারীর বাতিলকরণ প্রয়োগ করে এমন প্রতিটি যাচাইকারীতে তা প্রকাশ করুন।
CA-তে পড়ে থাকা হালনাগাদ ফাইল কিছুই বদলায় না, কারণ VPN তার নিজের যাচাইকারীতেই সিদ্ধান্ত চূড়ান্ত করে। CRL-এর ইস্যুকারী, বৈধতার সময়কাল ও বাতিল করা সিরিয়ালগুলো পরীক্ষা করুন, এবং নিশ্চিত করুন যে সেবাটি ফাইলটি পুনরায় লোড করে, আগেরটি ক্যাশ করে না। মালিকানা ও পথ বিষয়বস্তুর মতোই গুরুত্বপূর্ণ: ডেমন যে CRL পড়তে পারে না তা কোনো CRL না থাকার সমান। OpenVPN-এর crl-verify অপশনটি ডেমন যে ফাইল পড়ে তার নাম দেয়, তাই সার্ভার কনফিগে সেই পথ ও ফাইলের মালিকানা পরীক্ষা করুন।
ফাইলের টাইমস্ট্যাম্প দিয়ে নয়, সত্যিকারের সংযোগের চেষ্টা দিয়ে যাচাই করুন।
কখন CRL ভুল হাতিয়ার তা জানুন
ইস্যুকারীর প্রাইভেট কী আর বিশ্বস্ত না হলে, পরিচিত সিরিয়াল প্রত্যাহার করেও কোনো অননুমোদিত ধারককে নতুন সার্টিফিকেটে স্বাক্ষর করা থেকে আটকানো যায় না। এটি ইস্যুকারী-বিশ্বাসের রূপান্তর, অর্থাৎ নতুন CA ও বিতরণ পরিকল্পনা, CRL-এ আরেকটি এন্ট্রি নয়। সাবেক প্রশাসকের প্রবেশাধিকার ছিল বলেই কীটি অপব্যবহার হয়েছে এমন প্রমাণ হয় না, তাই বিশ্বাস পুনর্গঠনের আগে তথ্য সংগ্রহ করুন।
স্ট্যাটাস অক্ষর উল্টাতে ইস্যুয়েন্স ডেটাবেস হাতে সম্পাদনা করা স্বাক্ষরিত বাতিলকরণের বিকল্প নয়, আর এটি CRL-কে রেকর্ডের সঙ্গে অসঙ্গত করে রাখে।
সিরিয়াল, CRL ও বিতরণ ধাপটি এক নোটে রাখুন, পরের নিরীক্ষা পড়ার কাজ হয়ে যাবে। Easy-RSA প্রকল্প আপনার ইনস্টল করা সংস্করণের জন্য সমর্থিত কমান্ড নথিভুক্ত করে, আর এটিই অনুসরণযোগ্য একমাত্র ইন্টারফেস।