گواهی را نصب کرده‌اید، با نامی خوانا در Keychain Access دیده می‌شود، و انتخاب‌گر هویت کلاینت VPN هنوز خالی است. کلاینت به دنبال گواهی نیست. به دنبال هویت است: گواهی‌ای جفت‌شده با کلید خصوصی که می‌تواند مالکیت را اثبات کند، ذخیره‌شده جایی که کلاینت اجازه خواندن آن را دارد.

چیزی که کلاینت می‌خواهد یک هویت است

چارچوب امنیتی Apple گواهی و هویت را دو شیء متفاوت می‌داند. گواهی داده عمومی است. هویت همان گواهی به‌همراه کلید خصوصی‌اش است، و تنها هویت می‌تواند یک چالش را کامل کند. گواهی CA مورد اعتماد، در عوض، به کلاینت اجازه می‌دهد یک صادرکننده را ارزیابی کند؛ اما ماشین را دارنده یک اعتبارنامه کلاینت صادرشده نمی‌کند.

ItemWhat it can doWhat it cannot do
CA or server certificateValidate the gateway's chainAuthenticate this client
Client certificate without keyNothing for authenticationProve possession of anything
Identity (cert plus key)Answer the authentication challengeGuarantee the gateway accepts it

به همین دلیل، واردکردن یک فایل .cer هرگز هویت کلاینت قابل استفاده تولید نمی‌کند. فایل فقط مواد عمومی دارد، و هر قدر آن را تغییر نام دهید یا مورد اعتماد کنید، جفت‌کلید نمی‌شود.

سه دلیل برای خالی ماندن انتخاب‌گر

نخست، نبودِ کلید خصوصی است، یعنی فرایند ثبت‌نام یا واردکردن کلیدی تحویل نداده است. دوم، مخزنی است که کلاینت به آن مراجعه نمی‌کند: پروفایلی با دامنه کاربر در Keychain کاربر جست‌وجو می‌کند، و آیتمی که در مخزن سیستم قرار گرفته ممکن است برای آن نامرئی باشد. سوم، ناسازگاری هدف یا سیاست است، یعنی گواهی وجود دارد اما بر اساس قواعد استقرار برای احراز هویت کلاینت معتبر نیست.

security find-identity -v -p ssl-client

این دستور هویت‌هایی را فهرست می‌کند که سیستم آن‌ها را برای احراز هویت کلاینت معتبر می‌داند. اگر شمار صفر باشد، مشکل پیش از کلاینت VPN است و هیچ ویرایشی در پروفایل آن را درست نمی‌کند. اگر هویت اینجا دیده شود اما در کلاینت نه، تفاوت در مخزن یا دامنه کلاینت است.

کلید خصوصی کجا زندگی می‌کند و چه کسی می‌تواند از آن استفاده کند

وقتی هویتی را از طریق Keychain Access وارد می‌کنید، گفت‌وگوی واردکردن یک Keychain مقصد پیشنهاد می‌دهد. اینکه کدام مقصد درست است به کلاینت و به این بستگی دارد که پروفایل در دامنه کاربر باشد یا دستگاه. پاسخ قدیمی که Keychain سیستم را توصیه می‌کند قاعده عمومی نیست، و کپی‌کردن آیتم‌ها میان مخزن‌ها تعمیر محسوب نمی‌شود.

System Roots یک مجموعه اعتماد است. گذاشتن گواهی در آنجا تغییر می‌دهد سیستم به کدام صادرکننده‌ها اعتماد دارد؛ کلید خصوصی نمی‌سازد و مخزن هویت نیست. جابه‌جاکردن گواهی‌های بی‌ربط برای پرکردن یک انتخاب‌گر همان تعمیری است که ماشین را با مجموعه اعتمادِ دائماً گسترش‌یافته رها می‌کند.

دسترسی به کلید خصوصی کنترلی جداگانه است. دادن اجازه استفاده از کلید به همه برنامه‌ها مشکل انتخاب یک کلاینت را حل می‌کند و همان توانایی را به همه چیز دیگر روی ماشین می‌دهد. آن را به کلاینتی بدهید که به آن نیاز دارد، و بررسی کنید آیا کلید پشتوانه سخت‌افزاری دارد یا نشان غیرقابل‌سادر شدن خورده است؛ اگر چنین است، باید از ارائه‌دهنده پشتیبانی‌شده استفاده شود نه از یک نسخه صادرشده.

چگونه پروفایل به اعتبارنامه اشاره می‌کند

در پیکربندی بومی IKEv2 مدیریت‌شده، پروفایل از طریق PayloadCertificateUUID به بارِ اعتبارنامه خود ارجاع می‌دهد. چیزی که مهم است هویت ارجاع‌شده و شیوه تأمین آن است؛ ویرایش یک نام نمایشی در پروفایل ارجاعی را که به بار اشتباه یا باری که هرگز کلیدی تحویل نداده اشاره می‌کند تعمیر نمی‌کند.

یک ارائه‌دهنده ثالث ممکن است مکانیزم انتخاب کاملاً متفاوتی داشته باشد، مانند مخزن خودش یا یک اعلان سیستمی. مستندات آن ارائه‌دهنده را بخوانید و فرض‌های پروفایل بومی را منتقل نکنید، و ارجاع را در پروفایلی که واقعاً نصب شده بررسی کنید، نه در پیش‌نویس کنسول مدیریت.

انتخاب و پذیرش دو نقطه‌عطف جداست

انتخاب‌گرِ پرشده یعنی کلاینت می‌تواند هویتی را پیدا و استفاده کند. این هیچ چیزی درباره اینکه دروازه آن را می‌پذیرد نمی‌گوید. سرور همچنان صادرکننده، بازه اعتبار، وضعیت ابطال و نگاشت آن اعتبارنامه به یک حساب.

هر دو مرحله را صریح و به همین ترتیب بیازمایید. تأیید کنید هویت پیشنهاد می‌شود، وصل شوید، و سپس از مالک دروازه بخواهید تأیید کند کدام اعتبارنامه ارائه شده و کدام قاعده نگاشت آن را مصرف کرده است. اگر کلاینت هویتی پیشنهاد کند و سرور آن را رد کند، کار باقی‌مانده سمت سرور است. نصب دوباره گواهی روی Mac آن نتیجه را تغییر نمی‌دهد، هر چند بار هم تکرار شود.

مقالات مرتبط