• Instagram
  • Telegram
  • WhatsApp
همین حالا تماس بگیرید: 09354994059 - 05191014059
  • 0سبد خرید فروشگاه
ویستانت
  • صفحه اصلی
  • زمینه فعالیت
  • مقالات
    • میکروتیک
    • مایکروسافت
    • لینوکس
    • کریوکنترل
    • VMware
    • سیسکو
    • ایزابل
  • درباره
    • تیم ما
    • شرکت ما
  • پرسش های متداول
  • دریافت مشاوره
  • جستجو
  • منو منو

ایمن سازی Nginx در CentOS7

لینوکس, مقالات

گوگل مدتی است که شرکت‌ها و وب‌سایت‌ها را به استفاده از گواهینامه 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 می‌رویم.

 

قدم اول: نصب‌کردن کلاینت 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
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 استفاده می‌کنید، برای ذخیره و خروج ابتدا 😡 و سپس y را بزنید. با دستور زیر باید درست یا غلط‌ بودن کدهای دستوری خود را برای پیکربندی وب‌سرور بررسی و تأیید کنید:
sudo nginx –t
اگر دستورها بدون خطا اجرا شد، Nginx را دوباره راه‌اندازی کنید تا پیکربندی جدید بارگذاری شود:
sudo systemctl reload nginx
Certbot حالا می‌تواند بلوک سرور وب‌سایت شما را پیدا و به‌روزرسانی کند.

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

 

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

اگر دیوار آتش 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 ۸۰ -j ACCEPT
sudo iptables -I INPUT -p tcp -m tcp –dport ۴۴۳ -j ACCEPT
اکنون آماده اجرای Certbot و گرفتن گواهینامه‌های 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 ۲۰۲۳–۱۰–۲۰. 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 را باز می‌کند که در این لحظه خالی است. خط زیر را وارد فایل کنید و ذخیره را بزنید و آن را ببندید:

 

۳۱۵ * * * /usr/bin/certbot renew –quiet

 

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

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

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

 

نتیجه گیری

 

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

 

 

 

۲۷ بهمن ۱۴۰۱/۰ دیدگاه /توسط m.samaei
برچسب ها: cerbot, linux, nginx, ssl, ایمن سازی, لینوکس
اشتراک این مطلب
  • اشتراک در Facebook
  • اشتراک در Twitter
  • اشتراک گذاری در واتس اپ
  • اشتراک در Pinterest
  • اشتراک در Reddit
https://vistanetgroup.ir/wp-content/uploads/2023/02/nginxh2-wordpress-le.png 615 1024 m.samaei https://vistanetgroup.ir/wp-content/uploads/2024/03/log2-300x83-1.png m.samaei2023-02-16 10:01:112023-02-16 10:02:41ایمن سازی Nginx در CentOS7
شاید این موارد نیز مورد علاقه شما باشد
آموزش نصب FTP Server در لینوکس
ساخت Swap File در لینوکس
آموزش تنظیمات شبکه در لینوکس اوبونتو
اموزش کانفیگ nginx reverse proxy
آموزش بازیابی پسورد روت
آموزش کامپایل و اجرای برنامه های C و ++C در لینوکس
0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

تیم تخصصی ویستاگستربیهق(ویستانت) به پشتوانه تخصص و تجربیات کارشناسان خود در سال ۱۴۰۰ در زمینه ی مشاوره , آموزش و اجرای پروژه های تخصصی شبکه فعالیت خود را آغاز نمود.

هدف تیم ویستانت پشتیبانی و ارائه جدیدترین مطالب آموزشی و راهکارهای تخصصی شبکه می باشد. ویستانت کلیه خدمات خود را با تکیه بر تخصص، دانش فنی و تجربیات کارشناسان در قالب یک تیم تخصصی ارائه می‌کند.

اطلاعات تماس

ویستا گستر بیهق | خراسان رضوی-سبزوار
تلفن: ۰۵۱۴۴۶۵۷۸۱۵ – ۰۵۱۹۱۰۱۴۰۵۹ | همراه: ۰۹۳۵۴۹۹۴۰۵۹ | ایمیل: info@vistanetgroup.ir

تمامی حقوق برای ویستانت محفوظ می باشد

ایمن سازی Apache با SSLساخت Swap File در لینوکس
رفتن به بالا

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

بستناطلاعات بیشتر×

تنظیمات کوکی و حریم خصوصی



چطور از کوکی‌ها استفاده می‌کنیم

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

با کلیک روی عنوان‌های مختلف بهتر می‌توانید پیدا کنید. شما همچنین می‌توانید برخی از تنظیمات خود را تغییر دهید. توجه داشته باشید که مسدود کردن برخی از انواع کوکی‌ها ممکن است تجربه شما را در وب‌سایت‌های ما و خدماتی که ما بتوانیم ارائه دهیم، تحت تاثیر قرار می‌دهد.

کوکی‌های وب‌سایت ضرروی است

این کوکی ها برای ارائه خدمات موجود از طریق وب سایت ما و استفاده از برخی از ویژگی های آن کاملاً ضروری هستند.

Because these cookies are strictly necessary to deliver the website, refusing them will have impact how our site functions. You always can block or delete cookies by changing your browser settings and force blocking all cookies on this website. But this will always prompt you to accept/refuse cookies when revisiting our site.

اگر می خواهید از استفاده از کوکی ها خودداری کنید، کاملا احترام می گذاریم اما برای اینکه دوباره از شما درخواست نکنیم، به ما اجازه دهید تا یک کوکی برای این کار ذخیره کنیم. شما می توانید هر زمان که بخواهید انصراف دهید یا کوکی های دیگر را انتخاب کنید تا تجربه بهتری داشته باشید. اگر کوکی ها را رد کنید، ما تمام کوکی های تنظیم شده را در دامنه خود حذف خواهیم کرد.

ما یک لیست از کوکی ها ذخیره شده کامپیوتر شما را در سایت خود ذخیره می کنیم، بنابراین می توانید بررسی کنید که ما چه مواردی را ذخیره کرده ایم. به دلایل امنیتی ما نمی توانیم کوکی های دامنه های دیگر را تغییر یا نمایش دهیم. شما می توانید این مورد را در تنظیمات امنیتی مرورگر خود بررسی کنید.

سایر خدمات خارجی

ما همچنین از سرویس های خارجی مانند وب فونت های گوگل، نقشه های گوگب و سرویس دهنده های ویدیو خارجی استفاده می کنیم. از آن جا گه این ارائه دهندگان ممکن است اطلاعات شخصی شما مانند آی پی را جمع آوری کنند، ما به شما این امکان را می دهیم تا آن ها را مسدود کنید. لطفا توجه داشته باشید که این ممکن است عملکرد و ظاهر سایت ما را به شدت کاهش دهد. با بارگیری مجدد صفحه، تغییرات اعمال می شوند.

تنظیمات وب فونت گوگل:

تنظیمات نقشه گوگل:

تنظیمات reCaptcha گوگل:

جاسازی ویدیو ویمئو یا یوتیوب:

حریم خصوصی

تغییرات پس از بارگذاری صفحه دوباره اعمال خواهند شد

پذیرفتن تنظیماتفقط اطلاعیه را نمایش نده