در گذشته تنها زمانی امکان نصب و فعال سازی SSL بر روی یک وب سایت وجود داشت که آن وب سایت از IP اختصاصی بهره مند بود، باتوجه به هزینه جداگانه برای IP و با توجه به رو به اتمام رفتن IP های نسخه ۴ (IPv4) جهت رفع این مشکل SNI به وجود آمد. SNI مخفف کلمه Server Name Indication به معنی نشان گر نام سرور است که یک قابلیت در پروتکل TLS می باشد که نام میزبان درخواست شده را به عنوان بخشی از SSL/TLS ارسال می کند. بنابر این وب سرور قادر به انتخاب وب سایت درست و ارائه گواهی مناسب به مرورگر است.
SNI تکنولوژی است که کمک میکند با آی پی اشتراکی سرور نیز بتوانیم اقدام به نصب گواهی نامه SSL بکنیم.
مزایای استفاده از SNI
جهت نصب ssl نیاز به ای پی اختصاصی میباشد. یعنی هر اکانت جهت فعال کردن ssl روی هاست خود باید آی پی اختصاصی داشته باشد مگر اینکه روی سرور مورد نظر SNI فعال باشد. فعال بودن SNI تحت اختیارات شرکت میزبان است و میتواند به صورت رایگان این امکان را ارائه کند و یا در قبال فعال کردن این دسترسی هزینه ای دریافت کند.
بنابراین دو مزیت اصلی استفاده از SNI به صورت زیر است:
- برای تهیه SSL نیازی به پرداخت هزینه برای آی پی اختصاصی نیست
- کاهش و صرفه جویی در استفاده های بی مورد از IPv4
نکته: در صورت فعال نبودن SNI روی سرور اگر اقدام به نصب ssl از طریق گزینهی SSL Certificates کنید، خطایی که در تصویر مشخص هست را دریافت خواهید کرد.
در کنترل پنلهای Cpanel و Plesk قابلیت SNI بصورت پیشفرض فعال است. در ادامه نحوهی فعال کردن آن روی دایرکت ادمین توضیح داده میشود:
نحوه ی فعال کردن SNI در سرور های مجازی دایرکت ادمین
در دایرکت ادمین برای نصب ssl در یک اکانت هاست باید روی گزینه ی ssl certificate کلیک کنید. چنانچه SNI روی سرور فعال باشد شما دسترسی جهت نصب خواهید داشت و در غیر این صورت این گزینه خطای دسترسی میدهد و شما امکان نصب ssl نخواهید داشت. در این مورد باید دسترسی را ایجاد کنید
ابتدا SSH سرور را باز کنید . در صورتی که با نحوه برقراری ارتباط ssh آشنا نیستید این مقاله را بررسی نمائید.
جهت فعال کردن SNI در سرور های مجازی دایرکت ادمین باید دسترسی را در فایل directadmin.conf اضافه کنید. فایل directadmin.conf در مسیر زیر قرار دارد:
/usr/local/directadmin/conf/directadmin.conf
جهت ویرایش فایل از دستور nano استفاده کنید و دستور زیر را بدر ترمینال سرور اجرا کنید. در صورتی که با نحوه برقراری ارتباط ssh آشنا نیستید این مقاله را بررسی کنید.
nano /usr/local/directadmin/conf/directadmin.conf
در فایل باز شده باید دسترسی enable_ssl_sni برابر با 1 ست شده باشد. چنانچه گزینه ی enable_ssl_sni در فایل موجود نبود،باید به صورت زیر در فایل اضافه کنید:
در نهایت با کلید های Ctrl+xو سپس Y فایل را ذخیره کنید.
اکنون باید سرویس directadmin را یک بار ریست کنید. برای این منظور کد زیر را در ترمینال اجرا کنید:
service directadmin restart
با انجام این موارد دسترسی ssl cerfificate روی هاستهای سرور فعال میشود و امکان نصب ssl فراهم میشود.