אנדרואיד

אבטח nginx עם בואו להצפין ב- debian 10 לינוקס

How to Install and Configure Nginx Virtual-Host in Debian

How to Install and Configure Nginx Virtual-Host in Debian

תוכן עניינים:

Anonim

Let's Encrypt היא רשות אישורים חינמית, אוטומטית ופתוחה שפותחה על ידי קבוצת אבטחת האינטרנט לאינטרנט (ISRG) המספקת תעודות SSL בחינם.

אישורים שהונפקו על ידי Let's Encrypt הם מהימנים על ידי כל הדפדפנים הגדולים ותקפים למשך 90 יום מתאריך ההנפקה.

מדריך זה מראה כיצד להתקין תעודת SSL SSL בחינם ב- Debian 10, באסטר שמריץ את Nginx כשרת אינטרנט. אנו גם נראה כיצד להגדיר את התצורה של Nginx לשימוש בתעודת SSL ולהפעיל HTTP / 2.

תנאים מוקדמים

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

  • התחבר כשורש או כמשתמש עם הרשאות sudo. התחום שעבורו ברצונך להשיג את אישור ה- SSL חייב להצביע על IP השרת הציבורי שלך. אנו נשתמש ב- example.com .Nginx המותקן.

התקנת Certbot

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

Certbot הוא כלי מלא ובקלות לשימוש שמאפשר אוטומציה של המשימות להשגת וחידוש Let's Encrypt אישורי SSL ולהגדרת שרתי אינטרנט לשימוש בתעודות.

חבילת certbot כלולה במאגרי ברירת המחדל של Debian. הפעל את הפקודות הבאות כדי להתקין certbot:

sudo apt update sudo apt install certbot

מפיק את קבוצת דה (דיפי-הלמן)

החלפת מפתחות Diffie – Hellman (DH) היא שיטה להחלפה מאובטחת של מפתחות קריפטוגרפיים דרך ערוץ תקשורת לא מאובטח.

אנו הולכים ליצור קבוצה חדשה של פרמטרים DH של 2048 ביט לחיזוק האבטחה:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

ניתן גם לשנות את הגודל של עד 4096 ביטים, אך הדור עשוי לארוך יותר מ- 30 דקות, תלוי באנטרופיה של המערכת.

קבלת אישור בואו להצפין SSL

כדי להשיג אישור SSL לדומיין, אנו נשתמש בתוסף Webroot. זה עובד על ידי יצירת קובץ זמני לאימות הדומיין המבוקש בספרייה ${webroot-path}/.well-known/acme-challenge . שרת בואו להצפין מבצע בקשות HTTP לקובץ הזמני כדי לאמת כי הדומיין המבוקש פותר לשרת בו פועל certbot.

אנו /var/lib/letsencrypt כל בקשות HTTP עבור. .well-known/acme-challenge לספריה יחידה, /var/lib/letsencrypt .

הפעל את הפקודות הבאות כדי ליצור את הספרייה ולהפיכתה לשרת Nginx:

mkdir -p /var/lib/letsencrypt/.well-known chgrp www-data /var/lib/letsencrypt mkdir -p /var/lib/letsencrypt/.well-known chgrp www-data /var/lib/letsencrypt chmod g+s /var/lib/letsencrypt

כדי להימנע משכפול של קוד, ניצור שני קטעים שייכללו בכל קבצי החסימה של שרתי Nginx.

פתח את עורך הטקסט שלך וצור את הקטע הראשון, letsencrypt.conf :

sudo nano /etc/nginx/snippets/letsencrypt.conf /etc/nginx/snippets/letsencrypt.conf

location ^~ /.well-known/acme-challenge/ { allow all; root /var/lib/letsencrypt/; default_type "text/plain"; try_files $uri =404; }

הקטע השני ssl.conf כולל את ssl.conf המומלצים על ידי מוזילה, מאפשרים סיכות OCSP, HTTP Strict Transport Security (HSTS) ואכיפה מעט כותרות HTTP ממוקדות אבטחה.

sudo nano /etc/nginx/snippets/ssl.conf /etc/nginx/snippets/ssl.conf

ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 30s; add_header Strict-Transport-Security "max-age=63072000" always; add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff;

בסיום, פתח את קובץ החסימה של שרת הדומיין וכולל את קטע ה- letsencrypt.conf כמוצג להלן:

sudo nano /etc/nginx/sites-available/example.com /etc/nginx/sites-available/example.com

server { listen 80; server_name example.com www.example.com; include snippets/letsencrypt.conf; }

צור קישור סמלי לספרייה sites-enabled כדי לאפשר את חסימת שרת הדומיין:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

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

sudo systemctl restart nginx

אתה מוכן כעת להשיג את קבצי אישור ה- SSL על ידי הפעלת הפקודה הבאה:

sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com

אם אישור SSL מתקבל בהצלחה, ההודעה הבאה יודפסת במסוף שלך:

IMPORTANT NOTES: 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-02-22. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. 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:

ערוך את חסימת שרת הדומיין וכולל את קבצי אישור ה- SSL באופן הבא:

sudo nano /etc/nginx/sites-available/example.com /etc/nginx/sites-available/example.com

server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; #… other code }

התצורה שלמעלה מורה ל- Nginx להפנות מחדש מ- HTTP ל- HTTPS ומ- www לגירסה שאינה www.

הפעל מחדש או טען מחדש את שירות Nginx כדי שהשינויים ייכנסו לתוקף:

sudo systemctl restart nginx

פתח את האתר שלך באמצעות https:// ותבחין בסמל נעילה ירוקה.

חידוש אוטומטי של בואו להצפין אישור SSL

תעודות בואו להצפין תקפות למשך 90 יום. כדי לחדש אוטומטית את האישורים לפני שפג תוקפם, חבילת certbot יוצרת מציצה הפועלת פעמיים ביום ומחדשת אוטומטית כל תעודה 30 יום לפני תפוגה.

בעת חידוש יש לטעון מחדש את שירות nginx כדי שהשרת יטען את האישור. הוסף --renew-hook "systemctl reload nginx" לקובץ /etc/cron.d/certbot כך שהוא נראה כך:

sudo nano /etc/cron.d/certbot /etc/cron.d/certbot

0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --renew-hook "systemctl reload nginx"

בדוק את תהליך החידוש האוטומטי על ידי הפעלת פקודה זו:

sudo certbot renew --dry-run

אם אין שגיאות, פירוש הדבר שתהליך החידוש היה מוצלח.

סיכום

בעל תעודת SSL הוא חובה בימינו. זה מאבטח את האתר שלך, מגדיל את מיקום דירוג ה- SERP ומאפשר לך להפעיל HTTP / 2 בשרת האינטרנט שלך.

במדריך זה הראינו לכם כיצד ליצור ולחדש אישורי SSL באמצעות סקריפט certbot. הראנו לכם כיצד להגדיר את Nginx לשימוש בתעודות.

למידע נוסף על Certbot, בקר בתיעוד Certbot.

nginx debian בואו להצפין certbot ssl