اوبونتوسیستم عامل لینوکسمقالات وب

چگونه وب سرور NGINX را بر روی اوبونتو 16.04 امن کنیم؟

همانطور که می دانید Let’s Encrypt گواهینامه رایگانی است که توسط ISRG ارائه شده است. این گواهینامه روش آسان و خودکاری را برای  فراهم کردن گواهینامه های رایگان SSL/TSL  در اختیار افراد قرار می دهد که مراحل ضروری برای فعالسازی رمزگذاری و ترافیک HTTPS بر روی وب سرور هستند. این نرم افزار را می توان در حضور دسترسی شل به سرور نیز مورد استفاده قرار داد. در این مقاله سعی می کنیم نحوه استفاده از certbot را برای فراهم کردن گواهینامه رایگان SSL مورد بررسی قرار دهیم و ببینیم چگونه می توانیم آن را به همراه Nginx بر روی سرور اوبونتو استفاده نماییم. پس همراه وب ایده باشید.

 نصب Certbot:

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

# add-apt-repository ppa:certbot/certbot

 

در مرحله بعدی، فهرست منابع APT را به روزرسانی نمایید:

# apt-get update

 

در این مرحله از کار، می توان Certbot را به کمک دستور زیر نصب کرد:

# apt-get install certbot

 

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

فراهم کردن گواهینامه:

برای فراهم کردن گواهینامه SSL، افزونه های Certbot متعددی وجود دارد. این افزونه ها به فراهم کردن گواهینامه کمک می کنند ولی نصب و پیکربندی شان بر روی وب سرو بر عهده ادمین است. ما در این مقاله سعی می کنیم از افزونه ای به نام Webroot استفاده کنیم. این افزونه در مواردی که می توان محتوای موجود را اصلاح کرد توصیه می شود.  در طول فرآیند صدور و انتشار گواهینامه نیازی به متوقف کردن وب سرور نیست.

 پیکربندی NGINX:

افزونه Webroot یک فایل موقت برای هر کدام از دامنه های موجود در دایرکتوری با نام .well-known ایجاد می کند. در این مقاله دایرکتوری روت ما /var/www/html نام دارد. اطمینان حاصل کنید که دایرکتوری برای Let’s Encrypt در دسترس است و می تواند آن را تایید کند. برای انجام اینکار،پیکربندی NGINX را ویرایش کنید. به کمک ویرایشگر فایل، /etc/nginx/sites-available/default  را باز کنید:

# $EDITOR /etc/nginx/sites-available/default

 

در این فایل، در بلوک سرور، محتوای زیر را قرار دهید:

 location ~ /.well-known {
    allow all;
 }

 

فایل را ذخیره کرده و از آن خارج شوید. پیکربندی NGINX را بررسی کنید.

# nginx -t

 

اگر خطایی وجود نداشته باشد باید پیام زیر را دریافت کنید:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

 

NGINX را ریستارت کنید:

# systemctl restart nginx

 

فراهم کردن گواهینامه با Certbot:

مرحله بعدی فراهم کردن گواهینامه جدید به کمک Certbot و افزونه Webroot است. در این مقاله ما سعی می کنیم دامنه ی نمونه ای با عنوان www.example.com را امن نماییم. باید هر دامنه ای که مجبور هستید با گواهینامه امن کنید را مشخص نمایید. دستور زیر را اجرا نمایید:

# certbot certonly --webroot --webroot-path=/var/www/html -d www.example.com

 

در طول این فرآیند، Cerbot آدرس ایمیل معتبری را برای ارسال نوتیفیکیشن درخواست خواهد کرد. بعد از اینکه با قوانین موجود موافقت کردید، گواهینامه جدید برایتان فراهم خواهد شد. در انتها، دایرکتوری/etc/letsencrypt/archive  در برگیرنده فایل های زیر خواهد بود:

  • pem
  • pem
  • pem

همچنین Certbot یک لینک برای  فایل های اخیر گواهینامه در etc/letsencrypt/live/domain_name/ ایجاد خواهد کرد.  این همان مسیری است که در پیکربندی سرور از آن استفاده خواهیم کرد.

 پیکربندی SSL/TLS بر روی NGINX:

خوب مرحله بعدی، پیکربندی سرور است. اسنیپت جدیدی را در /etc/nginx/snippets/ ایجاد کنید. این اسنیپت بخشی از فایل پیکربندی است که  می توان آن را در فایل پیکربندی ویرچوال هاست قرار داد. پس فایل جدیدی ایجاد کنید:

# $EDITOR /etc/nginx/snippets/secure-example.conf

 

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

ssl_certificate /etc/letsencrypt/live/domain_name/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/domain_name/privkey.pem;

 

ما به جای domain_name  عبارت example.com را قرار داده ایم. شما باید از نام دامنه خود استفاده کنید.

 ویرایش پیکربندی NGiNX:

فایل ویرچوال هاست پیش فرض را ویرایش کنید:

# $EDITOR /etc/nginx/sites-available/default

همانند  کد زیر:

server {

 listen 80 default_server;

 listen [::]:80 default_server;

 server_name www.example.com

 return 301 https://$server_name$request_uri;



 # SSL configuration

 #

 listen 443 ssl default_server;

 listen [::]:443 ssl default_server;

 include snippets/secure-example.conf

 #

 # Note: You should disable gzip for SSL traffic.

 # See: https://bugs.debian.org/773332

...

 

 

این کد، رمزگذاری بر روی NGINX را فعال می سازد. حالا فایل را ذخیره کرده و ببندید. فایل پیکربندی NGINX را بررسی کنید:

# nginx -t



nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

 

 

حالا NGINX را به کمک دستور زیر ریستارت کنید:

# systemctl restart nginx

 

نتیجه گیری:

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

Rate this post
برچسب ها

نوشته های مشابه

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

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

بستن