روش فعالسازی SSL بر روی IIS SMTP Server
اندازه‌ی قلم متن
تخمین مدت زمان مطالعه‌ی مطلب: سه دقیقه

پس از انجام «تنظیمات امنیتی SMTP Server متعلق به IIS جهت قرارگیری بر روی اینترنت» و  همچنین پیاده سازی «مراحل تنظیم Let's Encrypt در IIS»، یکی دیگر از کاربردهای مجوز SSL دریافتی، رمزنگاری تبادل اطلاعات بین SMTP Server جاری و میل سرور مقصد است. بدون انجام اینکار، ایمیل‌های دریافتی توسط GMail، یک چنین شکلی را خواهند داشت:


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


نیاز به مجوز SSL معتبر نصب شده‌ی بر روی سرور

اولین مرحله‌ی پیش از شروع به تنظیمات SSL (عبارت صحیح‌تر آن TLS) بر روی SMTP Server جاری، نیاز به یک مجوز SSL معتبر نصب شده‌ی بر روی سرور است که نمونه‌ی آن در مطلب «مراحل تنظیم Let's Encrypt در IIS» بررسی شده‌است.
نکته‌ی مهمی که در اینجا وجود دارد این است که IIS SMTP Server، فقط مجوزهای موجود در قسمت Local_Machine\Personal certificates را مشاهده می‌کند. بنابراین ابتدا مراحل زیر را طی کنید تا مطمئن شوید که مجوز SSL شما در این قسمت نیز قرار گرفته‌است:
در خط فرمان دستور mmc را وارد کرده و آن‌را اجرا کنید. در صفحه‌ی باز شده، گزینه‌ی File -> Add remove snap-ins را انتخاب کنید. در اینجا در لیست ظاهر شده، certificates را انتخاب و add کنید. در صفحه‌ی بعدی نیز computer account و سپس local computer را انتخاب کنید. اکنون بر روی دکمه‌ی ok کلیک کنید تا صفحه‌ی certificate مخصوص local computer ظاهر شود:


مرحله‌ی بعد یادداشت کردن subject این مجوز است؛ از این جهت که از مقدار آن در مرحله‌ی بعد استفاده خواهیم کرد.



مراحل تنظیم SSL در IIS SMTP Server

1- پس از یادداشت کردن subject مجوز SSL مدنظر، به خواص SMTP Virtual Server مراجعه کنید:


در اینجا در برگه‌ی Delivery، بر روی دکمه‌ی Advanced کلیک کرده و در قسمت fully-qualified domain name، مقدار subject مجوز را وارد کنید.
2- پس از آن یکبار SMTP Virtual Server را متوقف کرده و سپس اجرا کنید تا مجوز متناظر با تنظیمات جدید را دریافت کند.
3- اکنون اگر به برگه‌ی Access مراجعه کنید، قسمت Secure communication آن فعال شده‌است (پیش از تنظیم fully-qualified domain name این گزینه غیرفعال است) و می‌توان گزینه‌ی Requires TLS Encryption آن‌را انتخاب کرد. همچنین در اینجا تاریخ انقضای مجوز نیز ذکر می‌شود.


4- در مرحله‌ی آخر، در همان برگه‌ی Delivery، بر روی دکمه‌ی outbound security کلیک کرده و گزینه‌ی TSL Encryption آن‌را نیز فعال کنید.



تغییرات برنامه جهت ارسال ایمیل‌های امن

اکنون اگر با همان تنظیمات قبلی برنامه‌ی خود، ایمیلی را ارسال کنید، پیام خطای زیر را دریافت خواهید کرد:
The SMTP server requires a secure connection or the client was not authenticated.
The server response was: 5.7.0 Must issue a STARTTLS command first
برای رفع این مشکل، فایل web.config برنامه‌ی وب خود را گشوده و enableSsl تنظیمات smtp آن‌را به true تنظیم کنید:
<system.net>
    <mailSettings>
      <smtp>
          <network enableSsl="true"/>
      </smtp>
    </mailSettings>
</system.net>
اینبار اگر ایمیلی را توسط برنامه ارسال کنید، گوگل چنین تغییراتی را نمایش می‌دهد:


قسمت security پیام دریافتی فعال شده و TLS را تشخیص داده‌است؛ که بیانگر ارتباط امن بین SMTP Virtual Server ما و جی‌میل است.