SNI مخفف “Server Name Indication” یا “نشانگر نام سرور” است که به عنوان یک افزونه در پروتکل TLS عمل میکند. این فناوری در ابتدا فرآیند برقراری ارتباط بین مرورگر و سرور را مدیریت میکند تا سرور بتواند گواهی SSL مناسب را برای اتصال ایمن ارسال کند. در واقع، SNI به سرور این امکان را میدهد که چندین گواهی SSL را برای یک آدرس IP خاص مدیریت کند، به این صورت که هر سایت میتواند گواهی SSL منحصر به خود را داشته باشد، حتی اگر روی یک آدرس IP مشترک میزبانی شوند.
این فناوری به نوعی مشابه به سیستم ارسال نامه به آپارتمانهاست. فرض کنید برای ارسال نامه به یک خانه، فقط آدرس خیابان کافی است، اما برای ارسال نامه به یک آپارتمان، علاوه بر آدرس خیابان، شماره آپارتمان نیز ضروری است تا بسته به مقصد صحیح برسد. به همین ترتیب، در شبکه، برای اتصال صحیح به وبسایتها، باید نام دامنهای که درخواست میشود، شناسایی شده و گواهی SSL مناسب ارسال گردد.
چرا SNI اهمیت دارد؟
بسیاری از سرورها (مثل سرورهای مجازی و سرورهای ابری) شبیه به خانههای آپارتمانی عمل میکنند که چندین نام دامنه را میزبانی میکنند. در چنین شرایطی، آدرس IP به تنهایی برای تعیین سایت مقصد کافی نیست. این مسئله میتواند منجر به نمایش پیام خطای SSL شده و از برقراری ارتباط HTTPS جلوگیری کند.
در حالتی که چندین وبسایت روی یک سرور میزبانی میشوند و از یک آدرس IP مشترک استفاده میکنند، هر سایت باید گواهی SSL خاص خود را داشته باشد. در صورتی که SNI فعال نباشد، سرور قادر نخواهد بود به درستی گواهی SSL مربوط به سایت مورد نظر را ارسال کند و این میتواند باعث بروز خطاهای امنیتی شود.
پیش از استفاده از SNI چگونه اتصال TLS انجام میشد؟
قبل از پیادهسازی SNI، زمانی که کاربری به وبسایتی متصل میشد، مرورگر ابتدا با سرور ارتباط برقرار میکرد و درخواست SSL را برای رمزگذاری ارتباط ارسال میکرد. برای برقراری این ارتباط ایمن، مرورگر نیاز داشت تا گواهی دیجیتال سرور را دریافت کند. در صورتی که نام گواهی سرور با نام دامنه درخواستی مطابقت نداشت، خطای SSL ایجاد میشد و معمولاً اتصال قطع میشد. این مشکل در زمانی که سرور میزبان چندین وبسایت روی یک آدرس IP بود، بیشتر احساس میشد.
نحوه عملکرد SNI
SNI برای حل مشکل مذکور طراحی شده است. این افزونه پروتکل TLS به سرور امکان میدهد تا نام دامنه مورد نظر را در ابتدای فرآیند ارتباط از مشتری دریافت کرده و سپس گواهی SSL صحیح را ارسال کند. در واقع، زمانی که اتصال ایمن TLS برقرار میشود، نام دامنه به پیام “Client Hello” افزوده میشود. این اطلاعات به سرور کمک میکند تا گواهی SSL مربوط به آن دامنه را ارسال کند و ارتباط به درستی برقرار شود.
بدون استفاده از SNI، سرور قادر نخواهد بود که گواهی SSL صحیح را تشخیص دهد و این میتواند منجر به ایجاد خطای “نام گواهی با نام دامنه مطابقت ندارد” شود.
مزایای SNI
- افزایش کارایی: با استفاده از SNI، سرورها میتوانند چندین گواهی SSL را بدون نیاز به تخصیص IPهای جداگانه برای هر دامنه مدیریت کنند. این موضوع به صرفهجویی در منابع و هزینهها کمک میکند.
- دسترسی به سایتهای مختلف با یک آدرس IP: کاربران میتوانند به راحتی به وبسایتهای مختلفی که از HTTPS استفاده میکنند دسترسی داشته باشند، بدون اینکه نیازی به IPهای متفاوت برای هر سایت باشد.
- امنیت بیشتر: استفاده از SNI باعث میشود که گواهی SSL صحیح برای هر وبسایت ارسال شود و از اتصال ایمن و بدون خطر مطمئن شوید.
چگونه SNI کار میکند؟
در یک اتصال TLS، SNI نام دامنهای که درخواست اتصال به آن داده شده است را در مرحله “Client Hello” ارسال میکند. سپس سرور با بررسی این نام، گواهی SSL مناسب را برای برقراری ارتباط ایمن ارسال میکند. این فرآیند باعث میشود که هیچگونه خطای SSL رخ ندهد و سایت به درستی بارگذاری شود.
پشتیبانی از SNI
امروزه تقریباً تمام مرورگرها، سیستمعاملها و سرورهای وب از فناوری SNI پشتیبانی میکنند. مرورگرهایی مانند Google Chrome، Mozilla Firefox، Opera، Safari و سیستمعاملهای مختلف از جمله ویندوز، لینوکس و macOS از این تکنولوژی پشتیبانی میکنند. این امر باعث میشود که SNI به یک استاندارد در دنیای وب تبدیل شود و در بیشتر محیطها قابل استفاده باشد.
نوین هاست یار نوین شماست
با توجه به محدودیتهای آدرسهای IP و نیاز به مدیریت چندین دامنه، فناوری SNI یک راه حل کاربردی و موثر برای سرورهاست تا چندین گواهی SSL را در یک آدرس IP مدیریت کنند. این امر باعث بهبود امنیت، افزایش کارایی و کاهش هزینهها میشود.
نوین هاست ارائهدهنده انواع هاست، سرور مجازی، سرور ابری، سرور اختصاصی و خدمات دیگر با بهترین کیفیت و پشتیبانی پس از فروش در کشور است.