امروزه، امنیت وب سایت دیگر یک تجمل نیست – بلکه یک ضرورت عملیاتی اساسی است. این بیانیه در مقابل افزایش جرایم سایبری بسیار دقیق است.
صاحبان وب سایت ها وظیفه اساسی دارند تا اتصال امن بین سرورهای وب خود و مرورگرهای کاربران را تضمین کنند.
نصب گواهینامه SSL بر روی NGINX به امن کردن این اتصال کمک میکند. این گواهینامه اطلاعات منتقل شده از طریق اینترنت را رمزگذاری میکند، تا حریم خصوصی داده ها را تضمین کرده و هم وب سایت و هم بازدیدکنندگان آن را محافظت کند.
اگر چندین سرور NGINX را مدیریت میکنید، باید توجه داشته باشید که هر سرور نیاز به گواهینامه SSL خاص خود برای فعال کردن HTTPS دارد. میتوانید از گزینههای مختلفی مانند دریافت راهحلهای رایگان مانند Let’s Encrypt و گواهینامههای پرداخت شده از مراجع صدور گواهینامه تجاری استفاده کنید.
در این آموزش، نحوه نصب گواهینامه SSL بر روی سرور NGINX را بررسی خواهیم کرد.
نحوه نصب گواهینامه SSL بر روی سرور NGINX
قبل از شروع فرآیند نصب گواهینامه SSL بر روی سرور NGINX، درک پیشنیازها مهم است.
پیشنیازها
قبل از ادامه، مطمئن شوید که موارد زیر را دارید:
- گواهینامه سرور صادر شده توسط مرجع صدور گواهینامه (CA) برای دامنه شما
- گواهینامههای میان
- یک کلید خصوصی
- NGINX نصب شده بر روی سرور شما
- یک حساب کاربری با دسترسی sudo یا مدیریتی.
همانطور که در پیشنیازها ذکر شد، فرض میکنیم که شما قبلاً یک درخواست امضای گواهینامه (CSR) تولید کرده و گواهینامه SSL خود را از یک مرجع صدور گواهینامه (CA) دریافت کردهاید.
اگر هنوز به کمک در این بخش از فرآیند نیاز دارید، به راهنمای “چگونه NGINX را با Let’s Encrypt در Ubuntu 22.04 امن کنیم” مراجعه کنید. Let’s Encrypt یک مرجع صدور گواهینامه (CA) رایگان، خودکار و باز است که گواهینامههای دیجیتال برای رمزنگاری لایه انتقال (TLS) ارائه میدهد.
اکنون نحوه نصب گواهینامه SSL بر روی سرور NGINX را بررسی میکنیم.
مرحله #۱: ترکیب همه گواهینامهها در یک فایل واحد
پس از دریافت گواهینامه SSL خود از CA (معمولاً به صورت فایل .zip از طریق ایمیل ارسال میشود)، آن را دانلود و از حالت فشرده خارج کنید. فایل .zip شامل گواهینامه سرور، یک گواهینامه ریشه و احتمالاً یک یا چند گواهینامه میانی است.
میتوانید فرآیند نصب را با ترکیب این گواهینامهها در یک فایل واحد به نام ssl-bundle.crt شروع کنید.
میتوانید به صورت دستی محتوای هر گواهینامه را در یک فایل باز در ویرایشگر متن مانند Vim یا Nano کپی و پیست کرده و آن را به عنوان ssl-bundle.crt ذخیره کنید یا میتوانید از ابزارهای خط فرمان برای ترکیب گواهینامهها در یک فایل استفاده کنید.
اگر از رویکرد خط فرمان استفاده میکنید، توصیه میکنیم از دستور مناسب بر اساس اینکه گواهینامههای میانی در فایلهای جداگانه یا یک فایل .ca-bundle هستند، استفاده کنید.
اگر گواهینامهها جداگانه هستند، از دستور زیر استفاده کنید:
cat your-domain.crt intermediate.crt root.crt >> ssl-bundle.crt
اگر گواهینامههای میانی در یک بسته واحد هستند، از دستور زیر استفاده کنید:
cat your-domain.crt your-domain.ca-bundle >> ssl-bundle.crt
توجه: مطمئن شوید که فایل کلید خصوصی شما (your-domain.key) دارای مجوز فقط خواندن برای کاربری است که NGINX را اجرا میکند. میتوانید مجوز فایل را با اجرای دستور chmod 400 {your-domain.key} در ترمینال تغییر دهید.
مرحله ۲: ویرایش فایل پیکربندی NGINX
پس از ترکیب گواهینامهها، محل بلوک سرور NGINX (که به عنوان فایل میزبان مجازی نیز شناخته میشود) را پیدا کنید. اگر از محل آن مطمئن نیستید، دستور زیر را اجرا کنید:
sudo find / -name nginx.conf
سپس، فایل پیکربندی را باز کرده و بلوک سرور موجود برای دامنه خود را کپی کنید. آن را در زیر بلوک اصلی قرار داده و بلوک جدید را ویرایش کنید.
در بلوک جدید باید موارد زیر را تغییر دهید:
اجرای پورت ۴۴۳:
listen 443 ssl;
تعریف مسیر گواهینامه SSL:
ssl_certificate /path/to/ssl-bundle.crt;
ssl_certificate_key /path/to/your-domain.key;
در این مرحله، فایل پیکربندی باید به این صورت باشد:
server {
listen 443 ssl;
ssl_certificate /etc/ssl/ssl-bundle.crt;
ssl_certificate_key /path/to/your_private.key;
root /path/to/webroot;
server_name your_domain.com;
access_log /var/log/nginx/nginx.vhost.access.log;
error_log /var/log/nginx/nginx.vhost.error.log;
location / {
root /var/www/;
root /home/www/public_html/your.domain.com/public/;
index index.html;
}
}
پس از انجام تغییرات لازم، فایل پیکربندی NGINX را ذخیره و خارج شوید.
مرحله ۳: راهاندازی مجدد سرور NGINX
برای اعمال تغییرات در عملیات سرور، سرور NGINX را مجدداً راهاندازی کنید.
# sudo systemctl restart nginx
مرحله ۴: تأیید گواهینامه SSL
اکنون باید بررسی کنید که آیا گواهینامه SSL را با موفقیت بر روی NGINX نصب کردهاید یا خیر. برای این کار، مرورگر وب خود را باز کرده و به وب سایت خود بروید تا به اتصال HTTPS آزمایش کنید.
یک آیکون قفل قفل شده در نوار آدرس مرورگر نشان دهنده نصب موفقیت آمیز گواهینامه SSL است.
نتیجه گیری
با پیروی از مراحل ذکر شده در بالا، باید بتوانید گواهینامه SSL را با موفقیت بر روی سرور NGINX خود نصب کنید.
به یاد داشته باشید که اگر چندین ماشین NGINX دارید، باید این فرآیند را برای هر سرور NGINX تکرار کنید.