ايمن كردن Nginx با Let’s Encrypt در Ubuntu 20.04
Let’s Encrypt يك مجوز رسمي است كه روشي آسان براي به دست آوردن و نصب مجوزهاي رايگان TLS / SSL فراهم مي كند ، در نتيجه HTTPS رمزگذاري شده را روي سرورهاي وب فعال مي كند. در واقع با ارائه يك كلاينت نرم افزاري ،يعني Certbot ، كه سعي در خودكارسازي اكثر مراحل لازم دارد ، فرايند را ساده مي كند. در حال حاضر ، كل مراحل اخذ و نصب گواهينامه هم در Apache و هم در Nginx كاملا به صورت اتوماتيك انجام مي شود.
در اين آموزش از Certbot براي دريافت گواهينامه رايگان SSL براي Nginx روي Ubuntu 20.04 استفاده مي كنيد و گواهي خود را براي تمديد خودكار تنظيم مي كنيد.
در اين آموزش به جاي فايل پيكربندي پيش فرض از يك فايل ميزبان مجازي Nginx جداگانه استفاده خواهد شد. توصيه مي كنيم براي هر دامنه فايل هاي جديد ميزبان مجازي Nginx ايجاد كنيد زيرا اين امر به جلوگيري از اشتباهات رايج كمك مي كند و فايل هاي پيش فرض را به عنوان پيكربندي برگشت پذير حفظ مي كند.
پيش نيازها
براي دنبال كردن اين آموزش ، به موارد زير نياز داريد:
• يك سرور Ubuntu 20.04 كه با دنبال كردن راهنماي ستاپ اوليه سرور براي Ubuntu 20.04 تنظيم شده و شامل يك كاربر غير root با امتيازات sudo و فايروال باشد.
• نام دامنه كاملاً ثبت شده. در اين آموزش ، از example.comاستفاده مي شود. مي توانيد نام دامنه را در Namecheap خريداري كنيد ، يكي را به صورت رايگان در Freenom دريافت كنيد ، يا از ثبت دامنه مورد نظر خود استفاده كنيد.
• هر دو ركورد DNS زير براي سرور شما تنظيم شده باشند.
o يك ركورد A با example.com كه به آدرس IP عمومي سرور شما اشاره كند.
o يك ركورد A با www.example.com كه به آدرس IP عمومي سرور شما اشاره كند.
• Nginx كه با دنبال كردن نحوه نصب Nginx در Ubuntu 20.04 نصب شده باشد. مطمئن شويد كه يك فايل هاست مجازي براي دامنه خود تنظيم كرده ايد. در اين آموزش از /etc/nginx/sites-available/example.com به عنوان نمونه استفاده مي شود.
مرحله 1 – نصب Certbot
اولين قدم براي استفاده از Let’s Encrypt جهت دريافت گواهينامه SSL ، نصب نرم افزار Certbot در سرور شماست.
Certbot و افزونه Nginx آن را با apt نصب كنيد.
$ sudo apt install certbot python3-certbot-nginx
Certbot اكنون آماده استفاده است اما براي اينكه SSL را به طور خودكار براي Nginx پيكربندي كند ، بايد تأييد كنيم كه Nginx به درستي پيكربندي شده است.
مرحله 2 – تأييد پيكربندي Nginx
Certbot بايد بتواند بلوك سرور صحيح را در تنظيمات Nginx شما پيدا كند تا بتواند SSL را بطور خودكار پيكربندي كند. به طور خاص ، اين كار را با جستجوي يك دستورالعمل server_name متناسب با دامنه مورد نظر براي دريافت گواهينامه انجام مي دهد.
اگر مرحله نصب بلوك سرور را در آموزش نصب Nginx دنبال كرديد ، بايد يك بلوك سرور براي دامنه خود در /etc/nginx/sites-available/example.com با دستور server_name كه قبلاً به طور مناسب تنظيم شده است ، داشته باشيد.
براي بررسي ، فايل پيكربندي دامنه خود را با استفاده از nano يا ويرايشگر متن مورد علاقه خود باز كنيد:
$ sudo nano /etc/nginx/sites-available/example.com
خط server_name موجود را پيدا كنيد. مي بايست شبيه به اين باشه:
/etc/nginx/sites-available/example.com
…
server_name example.com www.example.com;
…
اگر اين گونه بود ، از ويرايشگر خود خارج شويد و به مرحله بعدي برويد.
اگر اينطور نيست ، آن را به روز كنيد تا مطابقت داشته باشد. سپس فايل را ذخيره كنيد ، از ويرايشگر خود خارج شويد و تركيب ويرايش هاي پيكربندي خود را تأييد كنيد:
$ sudo nginx -t
اگر خطايي رخ داد ، فايل بلوك سرور را مجدداً باز كنيد و هرگونه خطاي تايپي يا كاراكتر جاافتاده را بررسي كنيد. پس از اينكه دستور فايل پيكربندي شما درست شد ، Nginx را مجدد لود كنيد تا پيكربندي جديد لود شود:
$ sudo systemctl reload nginx
Certbot اكنون مي تواند بلوك سرور صحيح را پيدا كرده و به طور خودكار آن را به روز كند.
در مرحله بعد ، بياييد ترافيك HTTPS فايروال را به روز كنيم.
مرحله 3 – اجازه عبور HTTPS از طريق فايروال
اگر فايروال ufw را فعال كرده باشيد ، همانطور كه توسط راهنماهاي پيش نياز توصيه شده است ، براي تنظيم ترافيك HTTPS ، بايد تنظيماتي را انجام دهيد. خوشبختانه ، Nginx چند پروفايل را از طريق نصب ufw ثبت ميكند .
با تايپ دستور زير مي توانيد تنظيم فعلي را مشاهده كنيد:
$ sudo ufw status
احتمالا خروجي دستور اينگونه خواهد بود ، نشان مي دهد كه فقط ترافيك HTTP به سرور وب مجاز است:
Output
Status: active
To Action From
— —— —-
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
براي اجازه دادن به ترافيك HTTPS ، به پروفايل كامل Nginx دسترسي بدهيد و اجازه پروفايل HTTP Nginx اضافي را حذف كنيد:
$ sudo ufw allow ‘Nginx Full’
$ sudo ufw delete allow ‘Nginx HTTP’
وضعيت شما اكنون بايد به اين شكل باشد:
$ sudo ufw status
Output
Status: active
To Action From
— —— —-
OpenSSH ALLOW Anywhere
Nginx Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)
سپس ، بياييد Certbot را اجرا كنيم و گواهينامه هايمان را دريافت كنيم.
مرحله 4 – اخذ گواهينامه SSL
Certbot روشهاي مختلفي براي گرفتن گواهينامه هاي SSL از طريق افزونه ها ارائه مي دهد. افزونه Nginx از تنظيم مجدد Nginx و بارگيري مجدد تنظيمات در صورت لزوم مراقبت خواهد كرد. براي استفاده از اين افزونه ، دستور زير را تايپ كنيد:
$ sudo certbot –Nginx -d example.com -d www.example.com
اين كار Certbot را با افزونه –Nginx با استفاده از -d براي مشخص كردن نام هايي كه معتبر آن هستند اجرا ميكند.
اگر اولين بار است كه Certbot را اجرا ميكنيد ، از شما خواسته مي شود كه آدرس ايميل را وارد كنيد و با شرايط سرويس ها موافقت كنيد. بعد از انجام اين كار ، certbot با سرور Let’S Encrypt ارتباط برقرار مي كند ، سپس براي تأييد اينكه دامنه مورد نظر خود را كنترل مي كنيد ، يك چالش اجرا كنيد.
اگر موفقيت آميز باشد ، certbot از شما مي پرسد كه چگونه مي خواهيد تنظيمات HTTPS خود را پيكربندي كنيد:
Output
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
1: No redirect – Make no further changes to the webserver configuration.
2: Redirect – Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you’re confident your site works on HTTPS. You can undo this
change by editing your web server’s configuration.
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Select the appropriate number [1-2] then [enter] (press ‘c’ to cancel):
گزينه خود را انتخاب كنيد و سپس ENTER بزنيد. پيكربندي به طور خودكار به روز مي شود ، و Nginx براي انتخاب تنظيمات جديد مجدد لود مي شود. certbot با پيغامي همراه خواهد بود كه به شما مي گويد روند موفقيت آميز بوده و گواهي نامه هاي شما در كجا ذخيره شده است:
Output
IMPORTANT NOTES:
– Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
Your cert will expire on 2020-08-18. 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
گواهينامه هاي شما دانلود ، نصب و لود مي شوند. سعي كنيد وب سايت خود را با استفاده از https: // مجدد لود كنيد و به نشانگر امنيتي مرورگر خود توجه كنيد. بايد نشان دهد كه سايت به طور صحيح ايمن است ، معمولاً با نماد قفل سبز نشانه داده ميشود. اگر سرور خود را با استفاده از SSL Labs Server Test آزمايش كنيد ، درجه A دريافت مي كند.
بياييد با آزمايش روند تجديد، كار را به پايان برسانيم.
مرحله 5 – تأييد تمديد خودكار Certbot
گواهي هاي Let’s Encrypt فقط براي نود روز اعتبار دارند. اين امر براي ترغيب كاربران به اتوماسيون كردن فرايند تجديد گواهينامه ميباشد. بسته certbot كه نصب كرديم با اضافه كردن يك اسكريپت تجديد به /etc/cron.d از اين امر مراقبت مي كند. اين اسكريپت روزانه دو بار اجرا مي شود و به طور خودكار هر مدركي را كه كمتر از سي روز از انقضاي آن مانده ، تمديد مي كند.
براي بررسي وضعيت تايمر، مي توانيد از systemctl استفاده كنيد:
$ sudo systemctl status certbot.timer
Output
● certbot.timer – Run certbot twice daily
Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled)
Active: active (waiting) since Mon 2020-05-04 20:04:36 UTC; 2 weeks 1 days ago
Trigger: Thu 2020-05-21 05:22:32 UTC; 9h left
Triggers: ● certbot.service
براي آزمايش فرآيند تجديد، ميتوانيد يك اجراي خالي با certbot انجام دهيد
$ sudo certbot renew –dry-run
اگر خطايي نمي بينيد ، همه تنظيمات انجام شده است. در صورت لزوم ، Certbot گواهي هاي شما را تمديد كرده و Nginx را مجدد لود مي كند تا تغييرات را اعمال كند. اگر فرايند تمديد خودكار زماني از كار بيفتد ، Let’s Encrypt پيامي را به ايميلي كه مشخص كرده ايد ، ارسال مي كند و به شما هشدار مي دهيد كه گواهي شما رو به پايان است.
نتيجه
در اين آموزش ، كلاينت lets Encrypt certbot را نصب كرديد ، گواهينامه هاي SSL را براي دامنه خود دانلود كرديد ، Nginx را براي استفاده از اين گواهينامه ها پيكربندي كرده و تمديد خودكار گواهي نامه را فعال نموديد. اگر سؤال ديگري در مورد استفاده از Certbot داريد ، مراجعه به مطالب مربوطه آنها توصيه ميشود.
خريد vps – خريد سرور مجازي – خريد سرور – سرور هلند – فروش vps – سرور مجازي آمريكا – خريدvps – سرور مجازي هلند – فروش سرور مجازي – سرور آمريكا – vps – سرور مجازي انگليس – سرور مجازي آلمان – سرور مجازي كانادا – خريد vps آمريكا – خريد وي پي اس – سرور – خريد سرور مجازي هلند – vps خريد – سرور مجازي فرانسه – سرور مجازي هلند – خريد vps آمريكا – خريد سرور مجازي ارزان هلند – vps – خريد vps هلند – خريد سرور مجازي آمريكا – خريد vps فرانسه – تست vps – سرور مجازي تست – سرور مجازي ويندوز – ارزانترين vps – خريد وي پي اس – vps ارزان –
برچسب: ،