تنظیمات امنیتی nginx

نحوه ایمن‌سازی Nginx با نصب SSL رایگان در CentOS 7

گوگل مدتی است که شرکت‌ها و وب‌سایت‌ها را به استفاده از گواهینامه SSL مجبور کرده است. بیش از ۴۶میلیون وب‌سایت در سراسر دنیا برای اینکه رتبه‌شان در صفحه نتایج گوگل افت نکند، با این تصمیم موافقت کرده‌اند. این گواهی تراکنش‌ها و اطلاعات حساس کاربر را ایمن نگه می‌دارد و به امنیت بیشتر فضای وب و اعتمادسازی بیشتر موتور جست‌وجوی گوگل کمک می‌کند.

Let's Encrypt مرجع جدیدی (CA) برای صدور گواهینامه‌های رایگان TLS و SSL است که HTTPS رمزنگاری‌شده را روی سرورهای وب فعال می‌کند. Let's Encrypt فرایند صدور گواهی را با فراهم‌کردن کلاینتی نرم‌افزاری به نام Certbot آن‌قدر هموار می‌کند که اغلب مراحل ضروری به‌طورخودکار انجام می‌شود. در‌حال‌حاضر، تمام فرایند دریافت و نصب گواهینامه‌های SSL روی وب‌سرورهای Apache و Nginx کاملاً خودکار شده است. در این مطلب، به شما آموزش خواهیم داد که چگونه از کلاینت Certbot برای دریافت گواهی SSL رایگان و اتصال آن به Nginx در CentOS 7 بهره ببرید و آن را به‌طورخودکار تمدید کنید. اگر می‌خواهید امنیت Nginx  را با نصب SSL روی CentOS 7 بالا ببرید،  این مطلب می‌تواند راهنمای خوبی برایتان باشد.

پیش‌نیازها

قبل از اینکه فرایند کار را آغاز کنیم، به چند چیز نیاز داریم:

  • سرور CentOS 7 با کاربر غیر‌روت که امتیازهای sudo را داشته باشد.
  • برای تهیه گواهی SSL، باید مالک دامنه ثبت‌شده‌ باشید یا آن را مدیریت کنید. اگر هنوز دامنه‌ای ثبت نکرده‌اید، می‌توانید دامنه‌تان را با پسوند دلخواه از پارس پک سفارش دهید.
  • رکورد A در DNS دامنه شما را به آدرس آی‌پی عمومی روی سرورتان متصل می‌کند. چرا به این کار نیاز است؛ چون Let's Encrypt از این طریق مالکیت دامنه‌ای را تأیید می‌کند که قرار است برایش گواهی صادر شود. برای مثال، اگر بخواهید گواهینامه SSL برای دامنه example.com بگیرید، باید آن را به سرورتان متصل کنید تا فرایند اعتبارسنجی انجام شود. در تنظیمات ما از دو دامنه example.com و www.example.com استفاده می‌کنیم؛ پس دو رکورد DNS لازم است.

هر زمان که تمام نیازمندی‌های یادشده را فراهم کردید، به‌سراغ نصب نرم‌افزار کلاینت مخصوص Let's Encrypt می‌رویم.

خرید ssl

قدم اول: نصب‌کردن کلاینت Let's Encrypt به نام Certbot

برای استفاده از Let's Encrypt به‌منظور دریافت گواهینامه SSL، باید اولین قدم، یعنی نصب کلاینت نرم‌افزاری Certbot روی سرورتان را بردارید. در‌حال‌حاضر، بهترین روش برای نصب آن ازطریق مخزن EPEL است.

دسترسی به مخزن EPEL روی سرور را با نوشتن دستور زیر فعال کنید:

sudo yum install epel-release

زمانی‌که مخزن EPEL فعال شد، با استفاده از دستور زیر می‌توانید بسته certbot-nginx را دریافت کنید:

sudo yum install certbot-nginx

حالا کلاینت Certbot نصب‌ شده و آماده استفاده است.

قدم دوم: تنظیم Nginx

اگر هنوز Nginx را نصب نکرده‌اید، با‌هم انجامش می‌دهیم. ازآن‌جاکه مخزن EPEL در مرحله قبل فعال شده است، می‌توانید Nginx را با دستور زیر نصب کنید:

sudo yum install nginx

سپس، با استفاده از systemctl وب‌سرور Nginx را راه‌ بیندازید:

sudo systemctl start nginx

سرویس SSL رایگان چه تفاوتی با دیگر اس اس ال ها دارد؟ در مقاله زیر بخوانید.

تفاوت SSL رایگان و تجاری

Certbot می‌تواند به‌طورخودکار SSL را برای Nginx پیکربندی کند؛ اما اول باید بتواند بلوک سرور مخصوص شما را در پیکربندی سرور پیدا کند. این کار ازطریق جست‌وجوی نام سروری (Server-Name) انجام می‌شود که دقیقاً منطبق بر دومین درخواست‌کننده گواهینامه است. اگر به‌تازگی Nginx را نصب کرده‌اید، با استفاده از vi یا ویرایشگر متنی دلخواه خود می‌توانید فایل پیکربندی پیش‌فرض Nginx را به‌روز کنید:

sudo vi /etc/nginx/nginx.conf

خط server-name را بیابید:

server_name _;

خط _ را با نام دامنه خود جایگزین کنید:

server_name example.com www.example.com;

فایل را ذخیره کنید و از ویرایشگر خارج شوید. اگر از vi استفاده می‌کنید، برای ذخیره و خروج ابتدا :x و سپس y را بزنید. با دستور زیر باید درست یا غلط‌ بودن کدهای دستوری خود را برای پیکربندی وب‌سرور بررسی و تأیید کنید:

sudo nginx –t

اگر دستورها بدون خطا اجرا شد، Nginx را دوباره راه‌اندازی کنید تا پیکربندی جدید بارگذاری شود:

sudo systemctl reload nginx

Certbot حالا می‌تواند بلوک سرور وب‌سایت شما را پیدا و به‌روزرسانی کند.

نصب ssl روی nginx

نصب SSL روی CentOS 7 برای افزایش امنیت Nginx چطور است؟

قدم سوم: به‌روزرسانی فایروال

اگر فایروال سرور را فعال کرده‌اید، مطمئن شوید که پورت‌های ۸۰ و ۴۳۳ برای ترافیک ورودی باز باشند. اگر فایروال روی سرور اجرا نمی‌شود، از این مرحله بگذرید.

اگر دیوار آتش Firewall را اجرا می‌کنید، دستور زیر را برای بازکردن پورت‌ها بنویسید:

sudo firewall-cmd --add-service=http
sudo firewall-cmd --add-service=https
sudo firewall-cmd --runtime-to-permanent

اگر دیوار آتش Iptables را اجرا می‌کنید، دستورهای لازم به مجموعه قوانین (Rule Set) کنونی شما بستگی دارد. اگر به Rule Set دست نزده‌اید، با دستور زیر می‌توانید دسترسی HTTP و HTTPS را اضافه کنید:

sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT

اکنون آماده اجرای Certbot و گرفتن گواهینامه‌های SSL هستیم.

نصب گواهی SSL در کنترل پنل دایرکت ادمین و ری دایرکت HTTPS را در مقاله زیر بخوانید.

نصب SSL در دایرکت ادمین

قدم چهارم: دریافت گواهینامه

Certbot راه‌های زیادی را برای نصب گواهینامه SSL ازطریق افزونه‌های مختلف پیش روی شما می‌گذارد. افزونه Nginx مسئول پیکربندی Nginx و بارگذاری دوباره آن در مواقع لزوم است:

sudo certbot --nginx -d example.com -d www.example.com

دستور بالا، Certbot را با افزونه –nginx اجرا و از –d برای مشخص‌کردن وب‌سایت‌های ما به‌منظور دریافت گواهی معتبر استفاده می‌کند. اگر نخستین‌بار است که Certbot را راه‌اندازی می‌کنید، از شما خواسته می‌شود تا ایمیلتان را وارد و با قوانین استفاده از خدمات موافقت کنید. پس از انجام این کار، Certbot با سرور Let's Encrypt مرتبط می‌شود و اقداماتی را برای اطمینان از کنترل شما روی دامنه درخواست‌کننده گواهینامه انجام می‌دهد.

درادامه، پیکربندی به‌روز و Nginx برای استفاده از تنظیمات جدید دوباره بارگذاری می‌شود. Certbot کار خود را با پیامی به‌اتمام می‌رساند که می‌گوید فرایند موفقیت‌آمیز بوده است و محل ذخیره‌سازی گواهی‌های شما را اطلاع می‌دهد:

Output
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/your_domain/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/your_domain/privkey.pem
   Your certificate will expire on 2022-10-20. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again with the "certonly" option. To non-interactively
   renew *all* of your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

در این مرحله، گواهینامه‌های TLS/SSL شما دانلود و نصب و بارگذاری می‌شوند. حالا وب‌سایت خود را با https:// باز کنید و نشانگر امنیت مرورگر را زیرنظر بگیرید. اگر همه مراحل را به‌درستی طی کرده باشید، علامت قفل سبزرنگ باید امنیت وب‌سایت شما را نشان دهد.

قدم پنجم: تنظیم تمدید خودکار

گواهینامه‌های Let's Encrypt تنها برای ۹۰ روز معتبرند. این مدت‌زمان برای تشویق کاربران به خودکارسازی فرایند تمدید گواهینامه است. برای بررسی انقضای گواهینامه و تمدید خودکار آن، باید دستور اجرایی منظمی را تنظیم کنید. ما از cron که سرویس سیستمی استاندارد مخصوص کارهای دوره‌ای است، برای بررسی روزانه تمدید گواهینامه استفاده می‌کنیم. به‌منظور دستوردادن به cron، باید فایلی به نام crontab را باز و ویرایش کنید:

sudo crontab –e

ویرایشگر متنی شما فایل پیش‌فرض crontab را باز می‌کند که در این لحظه خالی است. خط زیر را وارد فایل کنید و ذخیره را بزنید و آن را ببندید:

. . .
15 3 * * * /usr/bin/certbot renew --quiet

بخش 15 3 * * * از این خط باعث اجرای دستور در ساعت ۱۵:۳ هرروز می‌شود؛ البته شما می‌توانید هر ساعتی را انتخاب کنید.

دستور renew داده‌شده به certbot، تمام گواهی‌های نصب‌شده روی سیستم را بررسی و گواهینامه‌های دارای تاریخ انقضای کمتر از ۳۰ روز را به‌روزرسانی می‌کند. –quiet نیز به Certbot می‌گوید از هیچ اطلاعاتی خروجی نگیرد یا منتظر ورودی کاربر نماند.

حالا cron این دستور را هرروز اجرا می‌کند. زمانی‌که ۳۰ روز یا کمتر به تاریخ انقضای هریک از گواهینامه‌ها مانده باشد، آن گواهی تمدید و دوباره بارگذاری می‌شود.

فعال سازی ssl در nginx

با نصب SSL روی CentOS 7 امنیت Nginx را افزایش دهید!

جمع‌بندی

در این مطلب از آموزش سنت او اس، کلاینت Certbot را روی Let's Encrypt نصب، گواهینامه‌های SSL را برای دامنه‌ دانلود، Nginx را برای استفاده از گواهینامه‌ها پیکربندی و تمدید خودکار گواهینامه‌ها را تنظیم کردیم. اگر هنگام انجام فرایند نصب SSL روی CentOS 7 با سؤال یا ابهامی مواجه شدید، ازطریق کامنت آن را با ما در میان بگذارید.

آموزش نصب SSL در کنترل پنل سی پنل و ری دایرکت از http به https را در مقاله زیر بخوانید.

نصب SSL در سی پنل

سؤالات متداول

۱. گواهینامه SSL چیست و چه کاربردی دارد؟

لایه سوکت‌های امن (SSL) فناوری استانداردی برای اطمینان از امنیت اتصال اینترنتی و محافظت از هرگونه داده حساس ارسال‌شده بین دو سیستم است. گواهی SSL با این کار از دستیابی مجرمان به اطلاعات منتقل‌شده و تغییر آن جلوگیری می‌کند.

۲. Let's Encrypt یا ssl رایگان چیست و چه کاری انجام می‌دهد؟

این مجموعه مرجع جهانی صدور گواهینامه SSL/TLS است که به‌‌رایگان برای سازمان‌ها و وب‌سایت‌ها گواهینامه را صادر و تمدید و آن را مدیریت می‌کند.

۳. Nginx چیست؟

Nginx وب‌سروری است که می‌تواند به‌جای پروکسی معکوس، متعادل‌کننده بار، پروکسی ایمیل و کش HTTP نیز استفاده شود. Igor Sysoev، سازنده این نرم‌افزار رایگان و متن‌باز، آن را در سال ۲۰۰۴  تحت‌مجوز 2-clause BSD منتشر کرد.

۴. CentOS چیست؟

CentOS پروژه متن‌بازی است که دو توزیع مختلف از لینوکس به نام‌های CentOS Stream و CentOS Linux را عرضه کرده است. CentOS پلتفرم توسعه بالادستی برای انتشار محصول تجاری آینده Red Hat Enterprise Linux به‌حساب می‌آید.

۵. مراحل نصب SSL روی وب‌سرور Nginx چگونه است؟

  • نصب نرم‌افزارهای موردنیاز: سیستم‌عامل CentOS 7 و وب‌سرور Nginx
  • ایجاد کاربر غیرروت با امتیازهای sudo
  • نصب کلاینت مخصوص Let's Encrypt به نام Certbot
  • تنظیم Nginx و شناساندن آن به Certbot
  • به‌روزرسانی فایروال و بازکردن پورت‌های مرتبط
  • دریافت و اتصال گواهی SSL
  • تنظیم تمدید خودکار گواهی

۶. آیا گواهی‌های Let's Encrypt مورد‌اعتماد مرورگرهاست؟

بله، Let's Encrypt در بیشتر مرورگرها و سیستم‌‌عامل‌ها مورداعتماد است.

۷. آیا گواهی‌های Let's Encrypt امن هستند؟

تا آن‌جا که پیشرفت‌های امنیت و فناوری‌های رمزنگاری اجازه دهد، گواهی‌های رایگان Let's Encrypt به‌اندازه گواهی‌های تجاری دیگر مراجع صدور SSL امن هستند. سرعت انقضا و مدت‌زمان کوتاه گواهی‌های Let's Encrypt در‌واقع یکی از ویژگی‌های آن است و به پولی یا غیرپولی‌ بودن ارتباط ندارد.

۸. آیا می‌توان چندین گواهینامه SSL را برای چندین وب‌سایت در یک سرور صادر کرد؟

بله، Nginx هیچ‌گونه محدودیتی برای پشتیبانی و اتصال گواهینامه‌های مختلف SSL ندارد. گواهینامه‌های رایگان نیز می‌توانند به‌طور‌نامحدود برای وب‌سایت‌های مختلف صادر شوند.

۹. من با موفقیت گواهینامه را تمدید کردم؛ اما اعتبارسنجی انجام نشد، چطور ممکن است؟

زمانی‌که تمام اقدامات و چالش‌های دومین را با موفقیت پشت‌سر گذاشتید، نتیجه اعتبارسنجی برای حساب شما ذخیره کش می‌شود تا در آینده نیز از آن استفاده کنید. اعتبارسنجی‌های کش‌شده تا ۳۰ روز ذخیره می‌شوند. اگر گواهی‌ای که برایش درخواست داده‌اید تمام اعتبارسنجی‌های کش‌شده را داشته باشد، تا زمانی که منقضی شود، اعتبارسنجی اتفاق نخواهد افتاد.

منبع:

Digital Ocean

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

  • با خدمات ابری پارس پک آشنا شوید

    اولین ارائه‌دهنده خدمات رایانش ابری در ایران هستیم

    سرور ابری

    با ابرسرورها می‌توانید سرور با سیستم‌عامل دلخواه خود را در چند دقیقه انتخاب و نصب نموده و آزادانه منابع سخت‌افزاری که در نظر دارید را، در زمان دلخواه به سرور خود بیافزایید و تنها برای منابع مورد نیاز سرور، هزینه پرداخت نمایید.

    فضای ابری

    فضای ابری یا Cloud Storage، بستری امن و مطمئن با آپتایم بالا و دسترس پذیری بالا می‌باشد که می‌توانید داده‌ها واطلاعات خود را بر روی آن نگه داری کنید.فضای ذخیره‌سازی ابری پارس‌پک با بهره‌مندی از پروتکل S3 آمازون، با امنیت بالا در دسترس شما.

    هاست وردپرس

    هاست ابری وردپرس پارس پک سرویسی قوی و پایدار است که برای نصب و راه‌اندازی سیستم مدیریت محتوای وردپرس بهینه شده است. هاست wordpress با کنترل پنل DirectAdmin ارائه می‌شود که رابط کاربری گرافیکی ساده و راحتی دارد.

    خرید هاست ابری

    در هاست ابری برخلاف یک هاست اشتراکی، سایت‌های پر بازدید نیز بسادگی می‌توانند از خدمات میزبانی استفاده کنند، بدون آنکه درگیر دغدغه‌های مدیریت سرور شوند. همواره تنها برای آن میزان از منابع سخت‌افزاری که نیاز دارید هزینه می‌پردازید و دیگر نیازی به پرداخت هزینه‌های غیر موجه، در ابتدای فعالیت وب سایت خود، نخواهید داشت.

    هاست دانلود

    بسیاری از مدیران سایت‌های دانلود و یا سایت‌هایی که با ترافیک بالایی برای به اشتراک‌گذاری فایل‌های خود روبرو هستند، عمدتا با مشکلاتی مانند هزینه‌های گزاف زیرساختی و یا مصرف بالای منابع سخت‌افزاری روبرو می‌شوند. از همین رو پارس‌پک با معرفی فضای هاست دانلود برای این دسته از کاربران، محصول مناسبی را پیش‌بینی نموده است.

  • مطالعه این مطالب نیز پیشنهاد می‌شود

    مقالات و نظرات اعضای تیم ما درباره تکنولوژی، روزهای کاری و چیزای دیگر…

      • سرور مجازی SSD چیست؟ + معرفی ۵ مزیت مهم وی پی اس SSD
        سرور مجازی SSD به شما امکان می‌دهد تا اطلاعات خود را روی هارد SSD ذخیره کنید. درایورهای ذخیره‌سازی SSD سرعت بالایی را در اختیارتان قرار می‌دهند. برای آشنایی با سرور مجازی SSD با ما همراه باشید.
      • ۱۰ تفاوت سرور مجازی ایران و خارج؛ VPS ایران یا خارج کدام بهتر است؟
        بعد از اینکه در مورد نوعِ سرور از نظر نحوه‌ی تخصیص منابع تصمیم‌گیری کردید و نتیجه‌ی این تصمیم استفاده از سرور مجازی شد، حالا باید در مورد دیتاسنتر سرور خود در ایران یا خارج به نتیجه برسید. برای آشنایی با تفاوت سرور مجازی ایران و خارج با ما همراه باشید.
      • آموزش پیکربندی SSH برای استفاده از پورت‌ های مختلف در CentOS 7
        SSH پروتکل ارتباطی شبکه‌ای است که به دو کامپیوتر کمک می‌کند تا با یکدیگر ارتباط برقرار کنند و داده‌ها را به‌اشتراک بگذارند. در این مطلب آموزش پیکربندی SSH برای استفاده از پورت‌های مختلف در CentOS 7 ارائه شده است. با ما همراه باشید.
  • کلیه حقوق برای پارس پک محفوظ می باشد.

    Copyright © 2023 ParsPack Cloud Computing Technology ® , All Rights Reserved.