گواهینامه های SSL ارتباطات امن و رمزگذاری شده بین یک وب سایت و یک مرورگر اینترنتی را فراهم می کند. SSL مخفف Secure Sockets Layer است و پروتکلی است که رمزگذاری را فراهم می کند. گواهینامه های SSL به طور معمول در صفحاتی که کاربران نهایی نیاز به ارسال اطلاعات حساس در اینترنت مانند جزئیات کارت اعتباری یا کلمه عبور دارند استفاده میشود. به عنوان مثال صفحات پرداخت، فرم های آنلاین و صفحات ورود به سیستم.
Let’s Encrypt یک پروژه است که توسط بنیاد Electronic Frontier Foundation، موزیلا، Akamai، دانشگاه میشیگان و سیسکو پشتیبانی می شود. این یک گواهینامه کاملا خودکار و آزاد است که هدف رمزگذاری کل وب را دارد. یک راه ساده، امن، سریع و آزاد برای خودکار کردن همه چیز در گواهینامه SSL/TLS از جمله ساخت، نصب و تجدید گواهینامه است. از اکتبر 2015، مرورگرهای اصلی، گوگل کروم، موزیلا فایرفاکس، مایکروسافت Edge، سافاری، اپرا Let’s Encrypt را پشتیبانی میکنند.
در این آموزش، از Certbot برای دریافت یک گواهینامه SSL رایگان برای Nginx در اوبونتو 16.04 استفاده خواهیم کرد و گواهینامه خود را به صورت خودکار تمدید خواهید کرد.
ادامه دارد...
پیش نیاز ها :
- سرور ubuntu 16.04 : این آموزش بر اساس سرور Ubuntu میباشد
- دامنه ی ثبت شده، در این آموزش از دامنه domain.com استفاده میکنیم
- انجام تنظیمات DNS
- Nginx نصب گردد
نصب Certbot
اولین قدم در نصب Let’s Encrypt برای تهیه گواهی SSL نصب Cerbot بر روی سرور میباشد.ابتدا مخزن را به سرور اضافه نمایید :
1$sudo add-apt-repository ppa:certbot/certbot
سپس بسته ها را آپدیت نمایید :
1$sudo apt-get update
در نهایت بسته ی Certbot را نصب نمایید :
1$sudo apt-get install python-certbot-nginx
حالا Cerbot آماده استفاده است، اما برای اینکه بتوانیم SSL را برای Nginx پیکربندی کنیم، باید برخی از تنظیمات Nginx را بررسی کنیم.
راه اندازی Nginx
Certbot به طور خودکار SSL را برای Nginx پیکربندی میکند، اما باید بتواند سرور را در پیکربندی خود پیدا کند، که این کار را بر اساس Server-name دامنه ای که گواهینامه را برای آن میخواهید ایجاد نمایید انجام میدهد.اگر Nginx را تازه نصب کرده اید میتوانید تنظیمات پیش فرض را با استفاده از ویرایشگر مورد علاقه خود تغییر دهید.
1$sudo vim /etc/nginx/sites-available/default
خطی که شامل server_name میباشد را پیدا کنید و مقادیر را با نام دامنه ی خود جایگزین نمایید :
1server_name domain.com www.domain.com;
فایل ذخیره کنید و خارج شوید. سپس با استفاده از دستور زیر syntax تنظیمات خود را بررسی نمایید :
1$sudo nginx -t
اگر syntax تنظیمات درست بود Nginx را reload نمایید :
1$sudo systemctl reload nginx
تنظیمات HTTPS در فایروال
اگر شما هم مثل من از ufw استفاده میکنید که تنها کافی است ufw را فعال کنید، nginx در هنگام نصب برخی از تنظیمات مورد نیاز خود را در فایروال اعمال میکند.
با استفاده از دستور زیر میتوانید وضعیت فایروال را بررسی نمایید :
1$sudo ufw status