remote-cert-tls server: چه چیزی را در یک پروفایل OpenVPN بررسی میکند
این دستور نقش رمزگذاریشده در گواهی طرف مقابل را بررسی میکند، نه نام آن را. پیش از غیرفعال کردن هر چیزی، نقش، لنگر اعتماد و بررسی نام میزبان را مقایسه کنید.
سه پرسش متفاوت با سه بخش متفاوت یک پروفایل OpenVPN پاسخ داده میشوند، و ادغام آنها همان چیزی است که مردم را به خاموش کردن بررسیای که کار میکرد میکشاند. آیا گواهی طرف مقابل توسط مرجعی که به آن اعتماد دارم امضا شده است؟ آیا آن گواهی نقش کارساز TLS را اعلام میکند؟ آیا همان کارسازی است که میخواستم به آن برسم؟ remote-cert-tls server فقط به پرسش میانی پاسخ میدهد و این کار را با خواندن افزونههای درون گواهی انجام میدهد.
سه بررسی که بهآسانی در ذهن ادغام میشوند
لنگر اعتماد در دستور ca زندگی میکند. بررسی نقش به remote-cert-tls تعلق دارد. بررسی هویت به verify-x509-name تعلق دارد، هنگامی که پروفایلی از آن استفاده میکند، یا به هر بررسی نامی که استقرار اضافه میکند.
آنها خرابیهای متفاوتی را پوشش میدهند:
| Question | Directive | Failure it catches |
|---|---|---|
| Who signed this? | ca | Certificate from an unrelated authority |
| Is this a server? | remote-cert-tls | Client certificate presented by a peer |
| Is this my server? | verify-x509-name | Another valid server from the same CA |
یک پروفایل میتواند هر سه را داشته باشد و هنوز ضعیف باشد اگر CA بیش از حد گسترده به اشتراک گذاشته شود، که پرسشی درباره مدیریت کلید است نه درباره دستور.
بررسی نقش چه چیزی را میخواند
این دستور یک ماکرو است. به یک الزام استفاده از کلید و یک الزام استفاده گسترده از کلید گسترش مییابد که نقش کارساز وب TLS را نام میبرد، بنابراین گواهی طرف مقابل باید واقعاً آن هدف را اعلام کند. گواهی صادرشده برای احراز هویت کارخواه آن را برآورده نمیکند، حتی وقتی همان مرجع هر دو را امضا کرده باشد.
این مهم است زیرا CA مشترک در استقرارهای کوچک رایج است. یک مرجع هر کارخواه و کارساز را امضا میکند، و بدون بررسی نقش هر یک از آن گواهیها میتوانست سمت کارساز دستدادن را کامل کند. این بررسی آن سناریو را ناممکن نمیکند، اما نسخه بیاهمیت آن را حذف میکند.
این دستور بهطور طراحی نامتقارن است: کارخواهها remote-cert-tls server را حمل میکنند و کارسازها remote-cert-tls client را. آنها را جابهجا کنید و هر اتصال با خطای نقشی شکست میخورد که مانند یک گواهی خراب به نظر میرسد.
پروفایلهای قدیمیتر گاهی برای همان هدف از ns-cert-type استفاده میکنند. صفحههای راهنمای کنونی آن گزینه را منسوخ میدانند، بنابراین پروفایلی که هنوز به آن تکیه میکند ارزش مهاجرت دارد، نه اشکالزدایی.
چرا غیرفعال کردن آن مانند یک راهحل حس میشود
وقتی بررسی نقش شکست میخورد، اتصال با یک خطای بررسی متوقف میشود و اقدام بدیهی حذف آن خط است. سپس اتصال بالا میآید، که حس پیشرفت میدهد و در واقع همان حالت خرابی است که این دستور برای جلوگیری از آن وجود دارد. اکنون طرف مقابلی را میپذیرید که گواهیاش هرگز برای آن نقش در نظر گرفته نشده بود.
در عوض خطا را بخوانید. نام بررسیای را میگوید که شکست خورده است، و گواهی طرف دیگر را میتوان بررسی کرد تا دید واقعاً چه افزونههایی دارد. دو دقیقه خواندن مشخص میکند که خطا در صدور است یا در پیکربندی. حدس زدن یک بعدازظهر هزینه دارد و معمولاً به پروفایل ضعیفشده میانجامد. گواهی کارساز تمدیدشدهای که استفاده گسترده از کلید خود را از دست داده، خطای واقعی در تمدید است، نه دلیلی برای شل کردن کارخواه.
بررسی نام یک دستور جداگانه است
برآورده کردن بررسی نقش میگوید طرف مقابل کارسازی است که مرجع شما آن را امضا کرده است. هیچ چیزی درباره اینکه کدام یکی است نمیگوید، که وقتی مهم میشود که همان CA برای چند درگاه گواهی صادر میکند و یکی از آنها به خطر افتاده یا تغییر کاربرد داده است.
verify-x509-name موضوع گواهی را با مقداری که پیکربندی میکنید مقایسه میکند، با حالتهای تطبیق برای موضوع دقیق، یک پیشوند یا یک فیلد. از فیلدی استفاده کنید که واقعاً درگاه را شناسایی میکند، و انتظار داشته باشید که وقتی نام تغییر میکند آن را آگاهانه بهروز کنید.
هیچکدام از این دو دستور جای مدیریت خوب کلید را نمیگیرد. اگر فایل کلید کارخواه همراه با پروفایل کپیبرداری شود، هویت طرف مقابل فقط به اندازه فهرست توزیع قوی است.
پیش از ویرایش پروفایل، گواهی را بررسی کنید
گواهی طرف مقابل و گزارش کارخواه را به همین ترتیب بخوانید. گواهی میگوید چه نقشهایی را اعلام میکند؛ گزارش میگوید کدام بررسی آن را رد کرده است.
این فرمانها افزونههای استفاده و سطرهای بررسی را از یک اتصال مفصل چاپ میکنند:
openssl x509 -in server.crt -noout -text | grep -A1 -E "Key Usage|Extended Key Usage"
sudo openvpn --config client.ovpn --verb 4 2>&1 | grep -i verifyاگر افزونهها نقش کارساز را نشان دهند و گزارش هنوز خرابی نقش را اعلام کند، پروفایل احتمالاً به فایل گواهی اشتباه اشاره میکند نه به گواهی بد. اگر افزونهها فقط احراز هویت کارخواه را نشان دهند، از نگاه کردن به کارخواه دست بردارید و صدور را درست کنید. در هر حال، پیش از سالم خواندن اتصال، بررسی را بازگردانید، زیرا دستدادن موفق پس از حذف بررسی کمتر از خطایی را ثابت میکند که جای آن را گرفته است.