پینسازی گواهینامه یک تکنیک امنیتی است که در آن یک کلاینت (مانند یک برنامه موبایل یا دسکتاپ) یک سرور خاص را با یک گواهی X.509 یا کلید عمومی مورد انتظار مرتبط میکند. هنگامی که کلاینت به سرور متصل میشود، تأیید میکند که گواهی ارائه شده با گواهیای که میشناسد مطابقت دارد.
دلیل اصلی پینسازی، جلوگیری از حملات Man-in-the-Middle (MITM) است که در آن یک مهاجم با استفاده از یک گواهی جعلی یا نامعتبر، ارتباطات را رهگیری میکند. پینسازی تضمین میکند که برنامه شما فقط با سروری ارتباط برقرار میکند که به آن اعتماد دارید.
در این مقاله، یک برنامه خط فرمان ساده برای واکشی کد منبع وبسایت محصول SaaS به نام CertWatch ایجاد میشود. استفاده از یک برنامه خط فرمان به این دلیل است که این برنامه در هر محیطی قابل اجرا است و به دلیل ایزوله بودن، حتی برای یک دنبالکننده فناوری معمولی نیز قابل فهم است.
وبسایت از گواهی Let's Encrypt استفاده میکند که اغلب تغییر میکند، بنابراین توجه داشته باشید که کلید عمومی گواهی مورد استفاده در این نمونه ممکن است در زمان خواندن این مقاله معتبر نباشد. برای انجام پینسازی، ابتدا باید کلید عمومی گواهی سرور را بدست آورید.
برای تنظیم هندلینگ و تأیید گواهی، باید یک HttpClientHandler ایجاد کنید که حداقل سه کار را انجام دهد: فعال کردن بررسی لیست ابطال گواهی، تنظیم گزینههای گواهی کلاینت به صورت دستی و پیادهسازی یک متد callback برای اعتبارسنجی گواهی سرور.
مشاهده مطلب اصلی