مختلف سیریل نمبر، مختلف کلیدیں اور حتی کہ مختلف مکمل موضوعات رکھنے والے دو کلائنٹ سرٹیفکیٹ پھر بھی ایک ہی پالیسی فائل پر پہنچ سکتے ہیں، کیونکہ سرور ان میں سے کچھ نہیں دیکھتا۔ یہ سرٹیفکیٹ سے ایک نام پڑھتا ہے اور اس سے ملنے والی کلائنٹ کنفگ فائل کھولتا ہے۔ اگر دونوں سرٹیفکیٹ ایک ہی نام رکھتے ہیں تو دوسرا جڑتے ہی پہلے کی پالیسی ورثے میں لے لیتا ہے۔

یہ تصادم رجسٹریشن کے وقت بنتا ہے اور صرف جوڑنے کے وقت پتہ چلتا ہے، عام طور پر جب کوئی آلہ دوسری مشین کا پتہ یا راستوں کا مجموعہ وصول کرتا ہے۔ اسے روکنے کا مطلب ہے کہ طے کریں سرور کس فیلڈ کا نقشہ بناتا ہے، اور پھر کچھ بھی دستخط ہونے سے پہلے اس قدر کو محفوظ رکھیں۔

آپ کے سرٹیفکیٹ ٹولز آپ کو خبردار نہیں کریں گے، کیونکہ X.509 کے اندر یکسانیت اور OpenVPN پالیسی نام کی یکسانیت مختلف نظاموں کے نافذ کردہ مختلف تقاضے ہیں۔

سرور نام تلاش کرتا ہے، انگلی کا نشان نہیں

عام سرٹیفکیٹ پر مبنی نقشہ سازی میں، سرور پیش کردہ سرٹیفکیٹ سے عام نام لیتا ہے اور اپنی کلائنٹ کنفگ ڈائریکٹری میں اس نام کی فائل تلاش کرتا ہے۔ وہ فائل مستقل پتہ پن کر سکتی ہے، راستے پش کر سکتی ہے یا ہر کلائنٹ کے لیے فائر وال نشانات لاگو کر سکتی ہے۔ تلاش فائل نام کے ساتھ سٹرنگ کا میل ہے، اس لیے حروف کا حجم، خالی جگہیں اور رموزِ اوقاف سب اہم ہیں۔

کچھ تعیناتیاں جان بوجھ کر نقشہ سازی بدل دیتی ہیں تاکہ تصدیق شدہ صارف نام عام نام کی جگہ لے، اور پھر منفرد ہونا صارف نام ہی کا لازم ہوتا ہے۔ بہر حال، پالیسی منتخب کرنے والی قدر وہی ہے جو آپ محفوظ رکھتے ہیں۔ کچھ بھی جاری کرنے سے پہلے طے کریں کہ کون سی ہے؛ تصادم کے بعد اندازہ لگانا پوچھنے سے مہنگا ہے۔

جہاں دو اختیارات ایک ہی نام پر ملتے ہیں

ایک سے زیادہ جاری کنندہ اختیارات سے سرٹیفکیٹ قبول کرنے والی تنظیم ایک ہی نام کی جگہ میں لکھنے والے دو آزاد رجسٹریشن عمل چلاتی ہے۔ ہر اختیار کے اپنے یکسانیت کے قواعد اس کے اندر لاگو ہوتے ہیں، اس لیے دونوں ایک ہی عام نام کے لیے قانونی طور پر جاری کر سکتے ہیں اور کسی کو کچھ غلط نظر نہیں آتا۔

سیریل نمبر مدد نہیں کرتے۔ X.509 تقاضا کرتا ہے کہ سیریل نمبر اپنے جاری کنندہ کے دائرے میں منفرد ہو، جو اس اختیار کے حساب کتاب کی خصوصیت ہے، عالمی آلہ شناخت نہیں۔ موضوع کی جانچ بھی عام نام کی جانچ سے مختلف امتحان ہے: دو سرٹیفکیٹ ایک CN بانٹ سکتے ہیں لیکن تنظیمی اکائی میں مختلف ہو سکتے ہیں اور اس لیے الگ موضوعات رکھ سکتے ہیں۔ یہ تمام خصوصیات قائم رہ سکتی ہیں جبکہ سرور پھر بھی دونوں سرٹیفکیٹ کو ایک فائل نام پر نقشہ کرتا ہے۔

OpenSSL CA کی دستاویزات اس سیٹنگ unique_subject کا احاطہ کرتی ہیں جو اس کے اپنے ڈیٹا بیس کی رائے کو کنٹرول کرتی ہے، اور ایماندار آغاز یہ ہے کہ آپ اپنی جاری کرنے کی ترتیب پڑھیں، یہ فرض کرنے کے بجائے کہ کوئی مخصوص EasyRSA یا OpenSSL طے شدہ لاگو ہے۔

دستخط سے پہلے مؤثر نام محفوظ کریں

ایک رجسٹری رکھیں جو آلے کو اس کے منظور شدہ ریکارڈ سے اور وہاں سے درست پالیسی فائل نام سے نقشہ کرے، تاکہ نام ایک بار مختص ہو اور مختص ہی رہے۔ محفوظ کرنا جوہری ہونا چاہیے، جس کا عملی مطلب ہے مختص-پھر-دستخط مرحلے کے گرد ڈیٹا بیس کی پابندی یا تالا، دو لوگوں کی ترمیم کردہ اسپریڈ شیٹ نہیں۔

پھر جانچ کو جاری کرنے کا حصہ بنائیں: جب مطلوبہ نام پہلے سے موجود ہو تو دستخط سے انکار کریں، اور اس جانچ میں ہر اس اختیار کو شامل کریں جس پر سرور بھروسہ کرتا ہے، کیونکہ دوسرے اختیار کا محفوظ کردہ نام بھی اتنا ہی لیا ہوا ہے۔ واضح وجہ کے ساتھ مسترد درخواست اس آلے کے بارے میں ٹکٹ سے سستی ہے جسے بار بار کسی اور کا مستقل پتہ ملتا رہتا ہے۔

تجدید جان بوجھ کر نام کا دوبارہ استعمال کرتی ہے

موجودہ آلے کے لیے دوبارہ جاری کرنا اسی پالیسی نام کے تحت نیا سیریل بنانا چاہیے، اور یہ تصادم نہیں بلکہ قانونی دوبارہ استعمال ہے۔ جو پہلے سے طے کرنا ہے وہ اوورلیپ ہے: کیا پرانا اور نیا سرٹیفکیٹ بیک وقت درست ہو سکتے ہیں، اور پرانی اسناد کیسے ریٹائر ہوتی ہیں۔

اسے حل کرنے کے لیے duplicate-cn کی طرف نہ جائیں۔ وہ سرور آپشن ایک ہی نام پیش کرنے والے ہم وقت کنکشنز کو کنٹرول کرتا ہے؛ یہ رجسٹریشن کو تالا نہیں لگاتا، اور اسے فعال کرنا ایک مشترکہ مستقل پتہ بیک وقت دو مشینوں کے لیے محفوظ نہیں بناتا۔ منسوخی عام طور پر سرٹیفکیٹ کو جاری کنندہ اور سیریل نمبر سے پہچانتی ہے، اس لیے پرانی اسناد ریٹائر کرنے سے اس کے متبادل کو باطل کرنے کی ضرورت نہیں، جب تک سرور درست منسوخی ڈیٹا وصول اور نافذ کرتا ہے۔

مشین پر موجود ٹولز سے نقشہ سازی کی تصدیق کریں

آلے کو اس کی نئی اسناد دینے سے پہلے، سرٹیفکیٹ سے نام اسی طرح پڑھیں جس طرح سرور پڑھے گا، پھر اس کا موازنہ اس پالیسی فائل سے کریں جس کے منتخب ہونے کی توقع ہے۔

openssl x509 -in device42.crt -noout -subject -nameopt sep_multiline
ls -l /etc/openvpn/ccd/device42
grep -n "duplicate-cn" /etc/openvpn/server.conf

پہلا حکم موضوع کے میدان الگ الگ چھاپتا ہے، جو بھٹکی ہوئی تنظیمی اکائی یا دوہری خالی جگہ کو فوراً نظر آنے والا بناتا ہے۔ دوسرا تصدیق کرتا ہے کہ بالکل اسی نام کے تحت پالیسی فائل موجود ہے، اور تیسرا دکھاتا ہے کہ سرور ایک نام پر کئی سیشن کی اجازت دینے کے لیے ترتیب دیا گیا ہے یا نہیں۔ غلطی ابھی واقعے کے بجائے دستخط کی لاگت ہونے تک، رجسٹریشن مرحلہ چھوڑنے سے پہلے تینوں کو نئے سرٹیفکیٹ پر چلائیں۔ آؤٹ پٹ ٹکٹ کے ساتھ رکھیں تاکہ اگلا شخص دیکھ سکے کہ سرور کو واقعی کون سا نام ملا۔

حقیقی کنکشن کے ساتھ اختتام کریں اور مختص شدہ پتہ اور پش کردہ راستوں کا موازنہ پالیسی فائل سے کریں، نہ کہ اس سے جو آپ لکھنے کا ارادہ رکھتے تھے۔ اگر دو آلے ایک ہی مستقل پتہ رپورٹ کریں تو رجسٹری میں ایسا تصادم ہے جسے کوئی بھی سرٹیفکیٹ معائنہ کبھی ظاہر نہیں کرے گا۔

متعلقہ مضامین