Easy-RSA বলছে PKI নেই? এটি অন্য জায়গায় খুঁজছে
CA কী বা index.txt অনুপস্থিত থাকা সাধারণত বোঝায় Easy-RSA 3 অন্য একটি ডিরেক্টরি বেছে নিয়েছে। প্রথমে pki সিলেক্টর, অগ্রাধিকার এবং ইস্যুয়ারের ফিঙ্গারপ্রিন্ট পরীক্ষা করুন।
কমান্ডটি অনুপস্থিত ca.crt বা অনুপস্থিত index.txt নিয়ে থেমে যায়, অথচ CA মাসের পর মাস সার্টিফিকেট ইস্যু করছে। কর্তৃপক্ষে কিছুই বদলায়নি; কমান্ডটি কেবল অন্য জায়গায় দেখেছে। Easy-RSA 3 একটি অপশন, একটি এনভায়রনমেন্ট ভেরিয়েবল, একটি vars ফাইল এবং একটি অন্তর্নির্মিত ডিফল্ট থেকে PKI ডিরেক্টরি নির্ধারণ করে, এবং এর যেকোনোটি ডিপ্লয়মেন্টের কর্তৃপক্ষ থেকে দূরে নির্দেশ করতে পারে। কিছু তৈরি করার আগে কোনটি জিতেছে তা যাচাই করুন।
ত্রুটি একটি ফাইলের নাম বলে, ডিরেক্টরির নয়
ইনস্টলেশন ডিরেক্টরি এবং ইস্যুয়ার ডিরেক্টরি দুটি আলাদা জায়গা। মেশিনে easyrsa খুঁজে পাওয়া কেবল প্রমাণ করে টুলটি ইনস্টল করা আছে, আপনার VPN যে কর্তৃপক্ষকে বিশ্বাস করে সেটি এটি খুঁজে পেয়েছে তা নয়।
তাই প্যাকেজটি পুনরায় ইনস্টল করা বা init ধাপটি আবার চালানো ফলপ্রসূ মনে হয় এবং কিছুই বদলায় না।
সব কিছুর আগে সিলেক্টর পরীক্ষা করুন
Easy-RSA 3-এ সিলেক্টর হলো EASYRSA_PKI অথবা সংশ্লিষ্ট --pki-dir অপশন। একটি পরম পথ দিন, যেমন --pki-dir=/srv/pki/office, তাহলে উত্তরটি আর নির্ভর করবে না আপনি ঘটনাক্রমে কোথায় দাঁড়িয়ে ছিলেন তার উপর। এই একটি অভ্যাস এই বাগের একটি সম্পূর্ণ শ্রেণি দূর করে, বিশেষত cron বা CI চেকআউট থেকে চালানো স্ক্রিপ্টের জন্য।
প্রথমে প্রজন্ম নিশ্চিত করুন, কারণ Easy-RSA 2-এর একটি vars ফাইল এবং build-key অভ্যাস Easy-RSA 3 যে মডেল আশা করে তার থেকে আলাদা। easyrsa --version অন্য কিছু করার আগেই প্রজন্মটি প্রিন্ট করে, এবং ./easyrsa --help সাবকমান্ডগুলোর তালিকা দেয়: একটি build-key লক্ষ্য মানে 2.x, আর build-client-full মানে 3.x। একটি পুরোনো KEY_DIR পথ 3.x আহ্বানে বহন করা কেবল ডিরেক্টরির নাম পরিচিত দেখানোর কারণে ঠিক এই ত্রুটিই তৈরি করে।
যদি ভার্সন স্ট্রিং এবং কমান্ড সিনট্যাক্স মিলে না যায়, থামুন এবং ইনস্টল করা রিলিজের নিজস্ব ডকুমেন্টেশন পড়ুন।
অগ্রাধিকার ব্যাখ্যা করে একটি হেরে যাওয়া vars ফাইল
নথিভুক্ত অগ্রাধিকার হলো কমান্ড-লাইন অপশন, তারপর এনভায়রনমেন্ট, তারপর vars ফাইল, তারপর অন্তর্নির্মিত ডিফল্ট। তাই vars-এ সঠিক মান উত্তরাধিকারসূত্রে পাওয়া এনভায়রনমেন্ট ভেরিয়েবলের কাছে হারে, এবং এটিই এই ব্যর্থতার নীরব সংস্করণ। পুরো এনভায়রনমেন্ট টিকিটে ঢেলে না দিয়ে উদ্দিষ্ট ভেরিয়েবল ও ফাইল নির্বাচন পরীক্ষা করুন। দুটির মধ্যে পার্থক্য সাধারণত একটি গোপনীয়তা।
শৃঙ্খলটি ক্রমানুসারে হাঁটুন এবং নোট করুন কোন উৎস কমান্ডের ব্যবহৃত পথটি দিয়েছে। এটি জানার পর সমাধান হলো একটি ফ্ল্যাগ বা export, নতুন সার্টিফিকেট কর্তৃপক্ষ নয়।
Easy-RSA কনফিগারেশন রেফারেন্স সিলেক্টর ও অগ্রাধিকার নির্ধারণ করে, এবং এটিই টিকিটে দেওয়ার উদ্ধৃতি।
প্রকাশ্য উপাদান দিয়ে ইস্যুয়ার নিশ্চিত করুন
স্বাভাবিক ফাইল-ভিত্তিক ইস্যুয়ারের ক্ষেত্রে পড়ুন ca.crt এবং এর ফিঙ্গারপ্রিন্ট আপনার অনুমোদিত ইস্যুয়ার রেকর্ডের সঙ্গে মেলান। মিলে যাওয়া সাবজেক্ট নাম পরিচয়ের প্রমাণ নয়, production নামের ডিরেক্টরিও নয়। কেবল ফিঙ্গারপ্রিন্টই আপনার পাওয়া ফাইলটিকে সেই কর্তৃপক্ষের সঙ্গে যুক্ত করে যাকে আপনার পিয়ারদের বিশ্বাস করতে বলা হয়েছিল।
শুধু-পাঠ যাচাইই যথেষ্ট: openssl x509 -in /srv/pki/office/ca.crt -noout -subject -issuer -serial -fingerprint -sha256.
তারপর ডিরেক্টরির ভূমিকা নির্ধারণ করুন। ক্লায়েন্ট যে রিকোয়েস্ট ডিরেক্টরি ব্যবহার করে তা ইস্যুয়ার ডেটাবেস নয়, এবং অফলাইনে রাখা সাইনিং কী-এর প্রতিটি VPN হোস্টে থাকার কোনো কারণ নেই। অনুপস্থিত ca.key সেই বিন্যাসে একটি ডিজাইন বৈশিষ্ট্য, প্রতিস্থাপন কর্তৃপক্ষ উদ্ভাবনের অনুমতি নয়।
যদি অবস্থাটি সত্যিই চলে গিয়ে থাকে
কখনও কখনও পথটি ঠিক থাকে আর অবস্থাটি সত্যিই সেখানে থাকে না। একটি খালি index.txt এবং পুনরায় চালু করা সিরিয়াল কাউন্টার আপনাকে এমন একটি PKI দেয় যা সুস্থ দেখায় কিন্তু যে সার্টিফিকেটগুলো এটি কখনও দেখেনি সে সম্পর্কে কিছুই প্রমাণ করতে পারে না: নবায়নগুলো পুরোনোগুলো প্রত্যাহার করবে না, এবং নতুন নম্বরগুলো ইতিহাসের সঙ্গে সংঘর্ষ করবে। বরং CA-র অনুমোদিত ব্যাকআপ থেকে পুনরুদ্ধার করুন, কারণ অন্য কোথাও একটি ফাঁকা PKI শুরু করা কেবল ত্রুটিটি সরায় এবং পেছনে একটি দ্বিতীয়, সম্পর্কহীন কর্তৃপক্ষ রেখে যায়।
পথ ও ইস্যুয়ার একমত হলে পরের ব্যর্থতাটি তার যোগ্যতায় দেখুন। Permission denied, পাসফ্রেজ দরকার এমন একটি সাইনিং কী, এবং অনুপস্থিত ইস্যুয়েন্স রেকর্ড তিনটি ভিন্ন ত্রুটি, এবং তাদের মধ্যে কেবল একটি আপনার এইমাত্র ঠিক করা ডিরেক্টরি সম্পর্কে।
পথের ভুল ঢাকতে কখনও কী এনক্রিপশন সরাবেন না বা ডিরেক্টরি অনুমতি বাড়াবেন না। ভুলটি ঠিক করা সস্তা; মেরামত নয়।