התקן והגדר אישור Let's Encrypt עם Nginx ב-Ubuntu 22.04

[novashare_inline_content]

כאשר מארחים אפליקציית אינטרנט עם Nginx, חשוב לאבטח את התקשורת איתה באמצעות תעודת SSL. אם אין לכם אפשרות לרכוש אחד כזה, קיים פתרון Let's Encrypt שעוזר לכם לקבל תעודה בחינם. במאמר זה נראה כיצד להתקין ולהגדיר שרת אינטרנט של Nginx עם אישור Let's Encrypt בשרת אובונטו 22.04.

דרישות מוקדמות

על מנת לעקוב אחר מדריך זה, עליך להיות בעל:

  • שם תחום עם רשומת DNS מוגדרת. המשמעות היא שתחילה תצטרך לקשר את כתובת ה-IP הציבורית של השרת שלך לשם הדומיין המדובר.
  • משרת לינוקס מתחתאובונטו 22.04.

מתקין Nginx ו-PHP

לפני התקנת תעודת https שלך עם Let's Encrypt באובונטו, אתה צריך שרת אינטרנט. עבור הדוגמה, נשתמשNginx, שרת אינטרנט בקוד פתוח בשימוש נרחב כשרת HTTP, פרוקסי הפוך, מטמון HTTP, מאזן עומסים ושירותים אחרים.

ראשית, עדכן את מטמון המאגר של השרת שלך.

$ sudo apt update

כעת נוכל לעבור להתקנת Nginx.

$ $ sudo apt install nginx php-fpm php-mysql

לאחר מכן עליך להפעיל אותו ולהפעיל אותו באופן אוטומטי.

$ sudo systemctl start Nginx
$ sudo systemctl status nginx
$ sudo systemctl enable Nginx

הגדר את חומת האש

חשוב להגדיר את חומת האש כך שתאפשר רק תקשורת הדרושה לשרת שלך לתפקד, כולל http, https ו-SSH. אם זה שרת חדש, ייתכן שחומת האש שלך מושבתת. בדוק את הסטטוס שלו כדי לוודא:

$ sudo ufw status

כעת נרשום את היישומים שזוהו כדי לבחור את אלו לאישור.

$ sudo ufw app list

התוצאה מראה לך 4 פרופילים מוגדרים מראש:

  • Nginx מלאשהוא הפרופיל המאפשר לך לפתוח בו זמנית אתיציאות 80 (HTTP)et443 (HTTPS)
  • Nginx HTTPלהיות הפרופיל שישמש לפתיחה בלבדיציאה 80
  • Nginx HTTPSעבור הפרופיל שישמש רק לפתיחת היציאה443 (HTTPS)
  • OpenSSHשהוא פרופיל היציאה22 (SSH)

לפני הפעלת חומת האש, תחילה נצטרך לאשר גישת SSH כדי לא לאבד את החיבור לשרת.

$ sudo ufw allow 'OpenSSH'

נאפשר גם יציאות 80 ו-443 עם הפרופילNginx מלא.

$ sudo ufw allow 'Nginx Full'

לאחר שינוי כלל חומת אש, עליך להפעיל אותו מחדש.

$ sudo ufw disable && sudo ufw enable

כעת עליך לבדוק אם הוא אכן פעיל.

$ sudo ufw status

אתה יכול לבדוק תחילה את הגישה על ידי הזנת כתובת ה-IP של השרת בשורת הכתובת של הדפדפן שלךhttps://IP-SERVER

צור בלוק שרת לגישה עם שם הדומיין

כדי לגשת לשירות האינטרנט שלך לפי שם דומיין, עליך ליצור בלוק שרת בקובץ התצורה. קבצים אלה נוצרים בדרך כלל בספרייה/etc/nginx/sites-available/

$ sudo vim /etc/nginx/sites-available/web-demo.com

אנו נשבית את תצורת ברירת המחדל הנוכחית של Nginx כדי למנוע התנגשות אפשרית:

$ sudo rm /etc/nginx/sites-enabled/default

בואו נפעיל את התצורה שלנו על ידי יצירת קיצור דרך של הקובץ שלנו בתיקייה/etc/nginx/sites-enabled/

$ sudo ln -s /etc/nginx/sites-available/web-demo.com /etc/nginx/sites-enabled/

כעת נבדוק שאין בתצורה שלנו שגיאות:

עליך להפעיל מחדש את השירות כדי לקחת בחשבון את השינויים:

$ sudo systemctl restart nginx.service

אתה יכול לפתוח את הדפדפן כדי לבדוק את הגישהhttps://web-demo.com. אתה תגלה שזה עדיין לא מאובטח. כעת נעבור להתקנת Let's Encrypt באובונטו 22.04.

התקן בוא נצפין וניצור אישור באובונטו

בואו נצפןהיא רשות אישורים (CA) המנפיקה אישורים בחינם להגדרת שרת HTTPS המוכר באופן טבעי על ידי דפדפנים. זה עושה זאת על ידי הסתכלות על שם הדומיין ולוודא שרשומת DNS מוגדרת. בניגוד לתעודותקלַאסִיקָה, לאלה שהם מציעים יש תוקף של 90 יום. מה שאומר שאתה צריך לחדש אותם ידנית כל 3 חודשים או לעבור משימת CRON שתעשה זאת עבורך. התקנת Let's Encrypt באובונטו יכולה להתבצע באמצעותcertbot.

$ sudo apt install certbot python3-certbot-nginx

כעת נוכל להפיק את האישור עבור שם הדומיין הרצוי. זכור שקודם כל חייבת להתקיים רשומת DNS.

$ sudo certbot --nginx -d web-demo.com

במהלך התהליך שאימתנו את ההפניה האוטומטית מ-HTTP ל-HTTPS, תראה ש-certbot הוסיף שורות לקובץ התצורה.

$ vim /etc/nginx/sites-available/web-demo.com

עליך להפעיל מחדש את Nginx כדי שהשינויים ייכנסו לתוקף.

$ sudo systemctl restart nginx.service

אתה יכול לנסות לגשת לדומיין שלך דרך הקישור הלא מאובטחhttps://web-demo.com. אתה תראה שהוא מפנה אוטומטית לקישור המאובטחhttps://web-demo.com

כעת יש לך שרת אינטרנט מאובטח של Nginx עם אישור Let's Encrypt בשרת Ubuntu 22.04 Linux שלך.