نحوه نصب گواهی 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: استفاده کنید
۸۰. - 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:
۴۴۳ - 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 هدایت کردید.
