نصب SSL در IIS با استفاده از Let’s Encrypt

در این مقاله، فرآیند راهاندازی و نصب SSL در IIS را با استفاده از گواهیهای رایگان Let's Encrypt بررسی خواهیم کرد. امروزه داشتن گواهی امنیتی برای هر وبسایتی یک الزام فنی و سئویی است؛ چرا که علاوه بر حفظ امنیت دادههای کاربران، تاثیر مستقیم و مثبتی بر رتبه سایت در نتایج جستجوی گوگل دارد.
Let’s Encrypt یک مرجع صدور گواهی (CA) غیرانتفاعی است که امکان استفاده از پروتکل HTTPS را به صورت رایگان فراهم میکند. خوشبختانه تمامی مرورگرهای مدرن این گواهی را به عنوان یک منبع معتبر شناسایی میکنند. در ادامه، نحوه تولید و نصب خودکار این گواهی را در ویندوز سرور ۲۰۱۹ و نسخههای جدیدتر با استفاده از وبسرور IIS آموزش میدهیم.
پیشنیازهای نصب گواهی SSL در ویندوز سرور
قبل از شروع مراحل نصب، باید اطمینان حاصل کنید که زیرساخت شما آماده است. برای نصب SSL روی IIS به موارد زیر نیاز دارید:
- سرور مجازی یا اختصاصی: یک سرور با سیستمعامل ویندوز سرور (نسخه ۲۰۱۶ به بالا توصیه میشود).
- دسترسی Administrator: ورود به سرور از طریق ریموت دسکتاپ (RDP) با سطح دسترسی مدیریت.
- دامنه فعال: نام دامنهای که رکوردهای DNS آن (A Record) به طور کامل به آدرس IP سرور شما اشاره داشته باشد.
مرحله اول : نصب و پیکربندی IIS (Internet Information Services)
Server Manager را با جستجوی Server Manager در منوی Start باز کنید. روی لینک Add roles and features کلیک کنید.
در ادامه، مراحل دقیقی که باید در هر مرحله باید انجام دهید، قرار داده شده است.
- Before You Begin:این قسمت جزئیات افزودن Roles And Feature Wizard را توضیح داده است. میتوانید آن را بخوانید یا فقط روی Next کلیک کنید تا به برگه بعدی بروید.
- Installation Type: گزینه “Role-Based Or Feature-Based Installation” را انتخاب کنید و بعد Next را بزنید.
- Server Selection: گزینه “Select a Server From The Server Pool” را انتخاب کرده و از لیست “Server Pool” روی سرور خود کلیک کنید.
- Server Roles: در لیست Roles ها به پایین اسکرول کنید تا «وب سرور (IIS)» را پیدا کنید. هنگامی که ویژگیهای مورد نیاز از شما خواسته شد، گزینههای پیشفرض را علامت زده و بر روی دکمه Add Features کلیک کنید. سپس روی دکمه Next کلیک کنید.
- Features: گزینههای پیش فرض را در این جا نیز علامتزده بگذارید و بدون ایجاد هیچ تغییری روی دکمه Next کلیک کنید.
- Web Server Role: گزینههای پیشفرض را علامت زده بگذارید، زیرا ما فقط یک وب سرور اصلی ایجاد میکنیم و برای رفتن به صفحه تأیید روی دکمه Next کلیک کنید.
- Confirmation: تغییرات را یک بار بررسی کنید و بر روی دکمه Install کلیک کنید تا نصب شروع شود.
پس از پایان نصب، با وارد کردن آدرس آیپی سرور در مرورگر، باید صفحه خوشآمدگویی آبیرنگ IIS را مشاهده کنید.
مرحله دوم: ایجاد سایت و آمادهسازی برای میزبانی
برای نصب SSL روی IIS ابتدا باید یک وبسایت فعال داشته باشید تا گواهی بر روی آن اعمال شود. یک پوشه جدید در مسیر C:\inetpub با نام دامنه خود (مثلا domain.com) ایجاد کنید. داخل این پوشه، یک فایل متنی با نام index.html بسازید و محتوای سادهای مانند زیر در آن قرار دهید:
مرحله سوم: افزودن وب سایت به IIS
حالا نوبت به افزودن این سایت در IIS Manager میرسد. برنامه IIS را باز کرده، روی پوشه Sites راستکلیک کنید و Add Website را انتخاب نمایید. در بخش Physical Path، آدرس پوشهای که ساختید را بدهید و در قسمت Hostname، نام دامنه خود را وارد کنید. پس از کلیک روی OK، سایت شما با پروتکل HTTP در دسترس خواهد بود.
- در درخواست افزودن وب سایت، یک نام سایت برای شناسایی سایت خود ارائه دهید.
- اجازه دهید مقدار Application Pool مانند نام سایت باقی بماند.
- مسیر دایرکتوری را که صفحه index.html ما در مرحله 2 آموزش ایجاد کردهایم، در آن قرار دارد.
- مقدار پیش فرض را در Binding Type، آدرس IP و Port بگذارید.
- نام دامنه واقعی را در قسمت Host Name قرار دهید.
- روی دکمه OK کلیک کنید
- اکنون، میتوانید از یک مرورگر وب برای دسترسی مجدد به http://domain.com استفاده کنید.
مرحله چهارم: دانلود Let’s Encrypt Client
ویندوز به صورت پیشفرض ابزاری برای تعامل مستقیم با Let’s Encrypt ندارد. به همین دلیل ما از محبوبترین و پایدارترین کلاینت متنباز یعنی win-acme استفاده میکنیم. این برنامه فرآیند دریافت گواهی رایگان SSL برای IIS و تمدید خودکار آن را به طور کامل مدیریت میکند.
پس از دانلود آخرین نسخه Win-acme، فایلهای آن را در یک پوشه مشخص در درایو C قرار دهید.
مرحله پنجم: Generate Let’s Encrypt Certificates
- برای شروع فرآیند صدور گواهی، روی فایل wacs.exe راستکلیک کرده و گزینه Run as administrator را انتخاب کنید.
- ممکن است پیامی از Windows Defender دریافت کنید که “Windows protected your PC”” ، زیرا ما برنامه را از اینترنت دانلود کردهایم. روی پیوند «More Info» کلیک کنید و سپس روی دکمه «Run Anyway» کلیک کنید.
- این برنامه برای اجرا کاملاً ایمن است، زیرا Open Source است و به طور فعال توسط بسیاری از افراد استفاده میشود. همچنین اگر درخواست UAC (User Access Control) آمد، ممکن است لازم باشد به برنامه اجازه دهید.
پس از باز شدن محیط خط فرمان، مراحل زیر را به ترتیب طی کنید.
- N را در منوی اولیه فشار دهید تا گزینه «Create A New Certificate» را انتخاب کنید.
- سپس، از شما می پرسد “What Kind Of Certificate Would You Like To Create?”. برای انتخاب گزینه “Single Binding Of An IIS Site” عدد 1 را وارد کنید.
- اکنون برنامه لیست وب سایتها را از سرور IIS بازیابی میکند و آن را در Command Prompt نمایش میدهد. سایتی را که ما در مرحله 3 ایجاد کردیم، در آنجا لیستشده را خواهید دید. شماره نشان داده شده در جلوی سایت را فشار دهید.
- حالا از ایمیل شما میخواهد تا اخطارهای تمدید را برای شما ارسال کند. آدرس ایمیل خود را وارد کنید و با شرایط و ضوابط موافقت کنید.
برنامه win-acme به صورت خودکار با سرورهای Let’s Encrypt ارتباط برقرار کرده، مالکیت دامنه شما را تایید میکند و فایلهای گواهی SSL IIS را در جای درست قرار میدهد. همچنین یک Task Scheduler در ویندوز ایجاد میکند تا گواهی شما همیشه پیش از انقضا به صورت خودکار تمدید شود.
مرحله ششم: بررسی و تایید نصب SSL در IIS
پس از اتمام مراحل بالا، در IIS Manager روی سایت خود کلیک کرده و از پنل سمت راست، گزینه Bindings را انتخاب کنید. اکنون باید یک ردیف جدید با پورت ۴۴۳ و مجهز به پروتکل HTTPS اضافه شده باشد.
برای اطمینان کامل، مرورگر خود را باز کرده و سایت را با پروتکل امن (https://domain.com) چک کنید. وجود آیکون قفل سبز رنگ در کنار نوار آدرس، نشاندهنده نصب موفقیتآمیز SSL است.
جمعبندی نهایی
استفاده از ترکیب IIS Lets encrypt یکی از بهینهترین روشها برای ایمنسازی سرورهای ویندوزی است. با این روش، شما بدون صرف هزینه، از اعتبار و امنیت بالایی برخوردار میشوید. فراموش نکنید که همواره وضعیت پایداری وبسرور و اتصال دامنه به سرور را چک کنید تا فرآیند تمدید خودکار گواهی با خطا مواجه نشود. نصب یک گواهی SSL معتبر، اولین قدم برای حرفهای نشان دادن کسبوکار شما در فضای وب است.
سوالات متداول
بله این گواهی از نظر فنی دقیقا همان سطح از رمزنگاری (Encryption) را ارائه میدهد که گواهیهای تجاری فراهم میکنند و توسط تمامی مرورگرهای معتبر دنیا به رسمیت شناخته میشود.
تفاوت اصلی در میزان بیمه و ضمانت مالی ارائه شده توسط شرکت صادرکننده و همچنین مدت اعتبار آنها است. گواهیهای Let’s Encrypt اعتبار ۹۰ روزه دارند که باید تمدید شوند اما گواهیهای تجاری معمولا به صورت یکساله صادر میشوند.
نصب گواهی به تنهایی باعث انتقال خودکار کاربران به نسخه امن نمیشود. شما باید در تنظیمات IIS یا با استفاده از ماژول URL Rewrite یک قانون (Rule) تعریف کنید تا تمامی درخواستها از پورت ۸۰ به پورت ۴۴۳ منتقل شوند.
در اکثر مواقع این مشکل به دلیل مسدود شدن پورت ۸۰ یا تغییر در تنظیمات فایروال رخ میدهد. Let’s Encrypt برای تایید هویت دامنه نیاز به دسترسی موقت به یک فایل در پوشه سایت دارد بنابراین نباید دسترسی به پوشههای مخفی سیستم محدود شده باشد.
بله شما میتوانید برای هر تعداد زیردامنه که به سرور متصل است گواهی جداگانه دریافت کنید یا در تنظیمات پیشرفته کلاینت win-acme گزینه مربوط به صدور گواهی برای تمام Bindings را انتخاب نمایید.
خیر با استفاده از قابلیت SNI که در نسخههای مدرن IIS وجود دارد شما میتوانید چندین گواهی SSL مختلف را برای دامنههای متفاوت بر روی یک آیپی واحد نصب و مدیریت کنید.
کلاینت win-acme به صورت خودکار یک Task در ویندوز تعریف میکند که هر روز وضعیت اعتبار را چک میکند. تا زمانی که سرور شما روشن باشد و دامنه به آن اشاره کند این فرآیند بدون دخالت شما انجام خواهد شد.
در گذشته به دلیل پردازشهای رمزنگاری ممکن بود تاخیر بسیار جزئی ایجاد شود اما در سرورهای امروزی این تفاوت به هیچ وجه توسط کاربر احساس نمیشود و حتی به دلیل استفاده از پروتکل HTTP/2 میتواند سرعت بارگذاری را افزایش دهد.
شما میتوانید گواهی را به همراه کلید خصوصی در قالب فایل PFX از بخش Server Certificates در IIS اکسپورت کرده و در سرور جدید ایمپورت کنید یا به سادگی فرآیند صدور را مجددا در سرور جدید انجام دهید.
بله اما برای صدور گواهی Wildcard که شامل تمامی زیردامنهها به صورت یکجا باشد باید از روش تایید هویت DNS استفاده کنید که نیاز به دسترسی به پنل مدیریت دامنه دارد.
این موضوع معمولا به دلیل محتوای ترکیبی یا Mixed Content رخ میدهد. یعنی در کد سایت شما لینک تصاویری یا فایلهایی وجود دارد که هنوز با آدرس http فراخوانی میشوند و باید به https اصلاح شوند.
بله این برنامه برای اجرا در ویندوز سرور نیاز به نصب بودن .NET Framework دارد که معمولا در نسخههای جدید ویندوز به صورت پیشفرض نصب شده است.






























شما میتوانید دیدگاه خود را در مورد این مطلب با ما با اشتراک بگذارید.