HTTPS و SSL چیست؟ قفل کنار آدرس چه چیزی را تضمین میکند؟
کنار آدرس بیشتر سایتها یک قفل میبینید و آدرس با https:// شروع میشود. این قفل دقیقاً چه چیزی را تضمین میکند و چه چیزی را نه؟
HTTP و HTTPS
HTTP پروتکل ارتباط مرورگر و سایت است؛ در حالت ساده، دادهها بدون رمزنگاری رد و بدل میشوند و هر کس سر راه باشد (مثلاً روی یک وایفای عمومی) میتواند آنها را بخواند یا تغییر دهد. HTTPS همان HTTP است که روی یک لایهی رمزنگاری به نام TLS اجرا میشود. (نام قدیمیتر آن SSL بود و هنوز در گفتار رایج است؛ نسخههای SSL منسوخ شدهاند و امروز TLS استفاده میشود.)
قفل چه چیزی را تضمین میکند؟
- رمزنگاری: اطلاعات بین شما و سرور در مسیر قابلخواندن نیست.
- صحت: در مسیر دستکاری نمیشود.
- هویت دامنه: سرور گواهیای دارد که یک مرجع معتبر برای همان دامنه صادر کرده است.
چه چیزی را تضمین نمیکند؟
قفل یعنی ارتباطتان امن است، نه اینکه سایت درستکار و قابلاعتماد باشد. سایتهای فیشینگ هم میتوانند گواهی HTTPS بگیرند. پس همیشه خود دامنه را بخوانید؛ چند نمونهی رایج جعل: حرفهای شبیهبههم، دامنهی اصلی در زیردامنهی یک آدرس دیگر. راهنمای تشخیص در فیشینگ چیست؟ آمده است.
گواهی را از کجا بگیریم؟
گواهی TLS از «مراجع صدور گواهی» (CA) گرفته میشود. سرویس Let’s Encrypt گواهی رایگان و خودکار میدهد و بیشتر هاستها (از جمله Vercel، Netlify و Cloudflare Pages) آن را خودکار فعال میکنند؛ شما فقط دامنه را وصل میکنید. گواهیها تاریخ انقضا دارند و باید تمدید شوند، که در این سرویسها معمولاً خودکار است.
کارهای صاحب سایت
- همهی آدرسهای HTTP را به HTTPS ریدایرکت کنید.
- هدر HSTS را بفرستید تا مرورگر دفعات بعد حتماً با HTTPS وصل شود.
- مطمئن شوید همهی منابع صفحه (عکس، اسکریپت، فونت) با HTTPS بارگذاری میشوند؛ ترکیب HTTP و HTTPS باعث هشدار «mixed content» میشود.
- تاریخ انقضای گواهی را رصد کنید اگر خودکار تمدید نمیشود.
- هدرهای امنیتی دیگر (CSP، X-Content-Type-Options) را هم تنظیم کنید؛ نمونهاش فایل
vercel.jsonهمین سایت.
هنگام کار با وایفای عمومی
HTTPS محتوای صفحات را از دید دیگران مخفی میکند، ولی نشان میدهد با چه دامنهای در ارتباطاید. اگر هشدار «اتصال شما خصوصی نیست» دیدید، ادامه ندهید؛ ممکن است گواهی منقضی یا جعلی باشد.
سوالات رایج
آیا HTTPS سایت را سریعتر یا کندتر میکند؟ سربار رمزنگاری امروز ناچیز است و HTTP/2 که معمولاً فقط روی HTTPS فعال است، حتی میتواند سرعت را بهتر کند.
HTTPS برای سایت سادهی استاتیک هم لازم است؟ بله؛ هم برای امنیت کاربران و هم چون مرورگرها سایتهای HTTP را «ناامن» علامت میزنند و گوگل HTTPS را ترجیح میدهد.