نحوه نصب گواهی SSL/TLS Let’s Encrypt در ویندوز سرور ۲۰۱۹ با خدمات اطلاعات اینترنتی (IIS)
ایمنسازی برنامههای وب شما با HTTPS برای محافظت از دادههای در حال انتقال و بهبود اعتماد کاربران ضروری است. این مقاله نحوه نصب گواهی SSL/TLS رایگان Let’s Encrypt را در ویندوز سرور با استفاده از خدمات اطلاعات اینترنتی (IIS) توضیح میدهد.
در این مقاله، شما از کلاینت win-acme برای درخواست و اعمال گواهی، اتصال آن به IIS و فعال کردن تغییر مسیر خودکار HTTPS استفاده خواهید کرد. دستورالعملهای اختیاری برای Certbot و .pfxتبدیل دستی نیز برای موارد استفاده پیشرفته گنجانده شده است.
نصب IIS #
IIS یک ویژگی داخلی در ویندوز سرور است که میتوانید با استفاده از Server Manager آن را فعال کنید.
- از منوی استارت، Server Manager را باز کنید .
- روی Add Roles and Features کلیک کنید .
- Role-based or feature-based installation را انتخاب کنید ، سپس سرور خود را انتخاب کنید.
- در صفحه Server Roles ، گزینه Web Server (IIS) را تیک بزنید .
- هر ویژگی اضافی که نیاز دارید را اضافه کنید، سپس روی Install کلیک کنید .
- پس از نصب، با مراجعه به IP سرور عمومی خود در یک مرورگر، تنظیمات را آزمایش کنید:
http://YOUR-SERVER-IPشما باید صفحه خوشامدگویی پیش فرض IIS را ببینید.
یک برنامه وب ساده ایجاد کنید #
برای تأیید اینکه IIS به درستی محتوا را ارائه میدهد، یک برنامه HTML پایه ایجاد کنید:
- File Explorer را باز کنید و یک پوشه برای وبسایت خود ایجاد کنید.
- را فشار دهید
Win + R، تایپ کنیدnotepadو Enter را بزنید. - کد HTML زیر را در Notepad قرار دهید: html
<html> <head> <title>Hello World</title> </head> <body> <h1>Hello World!</h1> </body> </html>
- فایل را همانطور که
index.htmlدر پوشهای که تازه ایجاد کردهاید ذخیره کنید.
در مرحله بعد، این دایرکتوری را به عنوان یک سایت در IIS اضافه کرده و آن را به دامنه خود نگاشت (map) خواهید کرد.
راهاندازی یک سایت IIS با دامنه شما #
پس از ایجاد فایلهای وب، یک سایت IIS جدید پیکربندی کنید که دامنه شما را به پوشه صحیح نگاشت کند.
- IIS Manager را از منوی استارت و زیر بخش Windows Administrative Tools باز کنید .
- در پنل Connections ،را باز کنید و روی Sites کلیک راست کنید ، سپس Add Website را انتخاب کنید .

- در پنجره Add Website ، موارد زیر را پیکربندی کنید:
- Site name : یک نام برای شناسایی داخلی سایت وارد کنید (مثلاً
example.com). - Physical path :
...روی پوشهای که قبلاً ایجاد کردهاید کلیک کنید و آن را انتخاب کنید. - Binding:
- Type: انتخاب کنید
http. - IP address : اگر از IP اختصاصی استفاده نمیکنید، آن را روی «All Unassigned» بدون تخصیص رها کنید.
- Port: استفاده کنید
80. - Hostname: نام دامنه خود را وارد کنید (مثلاً
example.com).
- Type: انتخاب کنید
- Site name : یک نام برای شناسایی داخلی سایت وارد کنید (مثلاً
- برای ایجاد و شروع سایت، روی OKکلیک کنید .
- برای تأیید تنظیمات، یک مرورگر باز کنید و به آدرس زیر بروید:
http://example.comشما باید صفحه “سلام دنیا” که قبلاً ایجاد کردهاید را ببینید.
درخواست و نصب گواهی Let’s Encrypt #
شما میتوانید با استفاده از یکی از دو ابزار زیر، یک گواهی SSL/TLS رایگان از Let’s Encrypt نصب کنید:
- Win-acme : برای اکثر کاربران توصیه میشود؛ مستقیماً در IIS نصب میشود و بهروزرسانی را خودکار میکند.
- Certbot : پیشرفتهتر؛ کنترل انعطافپذیر و پشتیبانی چند پلتفرمی ارائه میدهد.
هر دو روش زیر را بررسی کنید و روشی را انتخاب کنید که برای گردش کار شما مناسبتر باشد.
Win-acme یک کلاینت سبک Let’s Encrypt است که گواهینامهها را مستقیماً در مخزن گواهینامه IIS نصب میکند و اتصالات HTTPS را به طور خودکار پیکربندی میکند.
- آخرین نسخه فایل فشرده Win-acme را دانلود کنید .
- محتویات را استخراج کرده و
wacs.exeبه عنوان Administrator اجرا کنید. - اگر SmartScreen ظاهر شد، روی More info > Run anyway کلیک کنید .
- وقتی از شما خواسته شد،
Nبرای ایجاد یک گواهی جدید، را فشار دهید. - سایتی را از لیست انتخاب کنید که با دامنه IIS شما مطابقت دارد.
Aبرای اعمال گواهی به همه اتصالات، فشار دهید .- همه پیشفرضها را بپذیرید (
Yبرای ادامه، باز کردن در IIS، موافقت با شرایط رمزگذاری Let’s Encrypt). - وقتی از شما خواسته شد، آدرس ایمیل خود را وارد کنید.
به طور خودکار برنده شوید:
- درخواست گواهی میکند
- آن را در فروشگاه گواهی ویندوز ذخیره میکند
- آن را به وبسایت IIS شما متصل میکند
- تمدید خودکار را تنظیم میکند
پس از تکمیل، https://example.comبرای تأیید فعال بودن HTTPS، آن را در مرورگر خود باز کنید.
استفاده از Certbot با اتصال دستی (جایگزین) #
Certbot یک کلاینت همهکاره Let’s Encrypt است که کنترل انعطافپذیری را ارائه میدهد، اما نیاز به اتصال دستی گواهی در IIS دارد.
نصب Certbot
- Certbot را برای ویندوز دانلود کرده و نصبکننده را اجرا کنید.
- PowerShell را به عنوان Administrator باز کنید و دستور زیر را اجرا کنید: pwsh
certbot -d example.com -m admin@example.com --agree-tos --webroot
در صورت درخواست، مسیر دایرکتوری سایت را وارد کنید.
این فایل، گواهیها را به صورت فایلهای .pem در مسیر زیر ذخیره میکند:
C:\Certbot\live\example.com\ تبدیل به .pfx با استفاده از OpenSSL
- نصب OpenSSL برای ویندوز.
- پاورشل را باز کنید و به پوشهی
binدر OpenSSL بروید:pwshcd "C:\Program Files\OpenSSL-Win64\bin"
- گواهی خود را به فرمت
.pfxتبدیل کنید:pwsh.\openssl.exe pkcs12 -export ` -out C:\Certbot\live\example.com\certificate.pfx ` -inkey C:\Certbot\live\example.com\privkey.pem ` -in C:\Certbot\live\example.com\fullchain.pem
وارد کردن و اتصال گواهی
- IIS Manager باز کنید.
- server name را انتخاب کنید، سپس Server Certificates را باز کنید..
- روی «Import» کلیک کنید، فایل
.pfxخود را انتخاب کنید، رمز عبور را وارد کنید و تأیید کنید. - به قسمت Sites بروید، دامنه خود را انتخاب کنید و روی Bindings کلیک کنید.
- روی Add کلیک کنید،
https, را انتخاب کنید و اختصاص دهید:- Port:
443 - Hostname:
example.com - Certificate: از منوی کشویی انتخاب کنید
- Port:
- علامت «Require Server Name Indication» را علامت بزنید و با OK تأیید کنید.
برای تأیید فعال بودن گواهی خود، به https://example.com مراجعه کنید.
ریدایرکت درخواستهای HTTP به HTTPS #
از ماژول IIS URL Rewrite برای هدایت خودکار تمام ترافیک HTTP به HTTPS استفاده کنید .
ماژول بازنویسی URL را نصب کنید
- ماژول بازنویسی URL را دانلود کنید .
- نصب کننده را اجرا کنید و تنظیمات را کامل کنید.
- IIS Manager را باز کنید ، روی نام سرور خود کلیک کنید و تأیید کنید که URL Rewrite در نمای ویژگیها (Features View) در دسترس است .
ایجاد یک قانون تغییر مسیر در IIS
- در IIS Manager ، سرور خود را باز کنید و سایت خود را در قسمت Sites انتخاب کنید .
- URL Rewrite دوبار کلیک کنید .
- در پنل Actions، روی Add Rules کلیک کنید .
- در قسمت (Inbound Rules) باید، (Blank rule) را انتخاب کرده و روی (OK) کلیک کنید .
- قانون خود را نامگذاری کنید (مثلاً
Redirect to HTTPS). - Requested URL را با استفاده از as
Matches the Pattern، به عنوان نگه دارید .Regular Expressions - Pattern را روی این تنظیم کنید :
(.*) - علامت «Ignore case» را بردارید .
اضافه کردن شرط
- Conditions را گسترش داده و رویAddکلیک کنید .
- Condition input را روی: تنظیم کنید
{HTTPS} - اگر Check if input string به صورت باشد، بررسی را رها کنید
Matches the Pattern. - تنظیم Patternروی:
^OFF$ - روی OKکلیک کنید .
تعریف عمل ریدایرکت
- به تنظیمات Actionبروید و پیکربندی کنید:
- Action type:
Redirect - Redirect URL: :
https://{HTTP_HOST}{REQUEST_URI} - علامت Append query stringرا بردارید
- Redirect typeرا روی
Permanent (301)
- Action type:
- در پنل Actions، روی Applyکلیک کنید .
تغییر مسیر را آزمایش کنید
مرورگر خود را باز کنید و به آدرس زیر مراجعه کنید:
http://example.com شما باید به طور خودکار به نسخه HTTPS هدایت شوید.
اگر فایل web.config موجود نیست؟
اگر تغییر مسیر کار نکرد، تأیید کنید که فایل web.config در ریشه سایت شما وجود دارد. اگر وجود ندارد، یکی با محتوای زیر ایجاد کنید:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
فایل را ذخیره کنید و تغییر مسیر را دوباره در مرورگر خود آزمایش کنید.
نتیجهگیری #
در این مقاله، شما یاد گرفتید که چگونه یک وبسایت میزبانی شده بر روی سرویسهای اطلاعات اینترنتی (IIS) را با یک گواهی SSL/TLS رایگان Let’s Encrypt در ویندوز سرور ایمن کنید. شما IIS را راهاندازی کردید، یک برنامه وب اولیه را مستقر کردید، گواهی را با استفاده از Certbot یا win-acme نصب کردید، اتصالات HTTPS را پیکربندی کردید و ترافیک HTTP را به HTTPS هدایت کردید.