Как настроить веб сервер на Ubuntu 18.04 [Nginx + PHP-FPM + phpMyAdmin + vsftpd]
תוכן עניינים:
- תנאים מוקדמים
- התקן את Certbot
- צור קבוצת Dh (דיפי-הלמן) חזקה
- קבלת אישור בואו להצפין SSL
- חידוש אוטומטי של בואו להצפין אישור SSL
- סיכום
Let's Encrypt היא רשות אישורים חינמית ופתוחה שפותחה על ידי קבוצת המחקר בנושא אבטחת אינטרנט (ISRG). כמעט כל הדפדפנים כיום מהימנים על אישורים שהונפקו על ידי Let's Encrypt.
במדריך זה נספק הוראות שלב אחר שלב כיצד לאבטח את ה- Nginx שלך באמצעות Let's Encrypt באמצעות כלי certbot באובונטו 18.04.
תנאים מוקדמים
וודא כי עמדת בתנאים המוקדמים הבאים לפני שתמשיך במדריך זה:
- יש לך שם תחום שמצביע על IP השרת הציבורי שלך. במדריך זה נשתמש ב-
example.com
. יש לך Nginx המותקן על ידי ביצוע הוראות אלה יש לך חסימת שרת עבור הדומיין שלך. תוכל לעקוב אחר ההוראות הבאות לקבלת פרטים כיצד ליצור הוראות.
התקן את Certbot
Certbot הוא כלי מלא ובקלות לשימוש המאפשר להפוך את המשימות להשגת וחידוש Let's Encrypt SSL של אישורים ולהגדרת שרתי אינטרנט לשימוש בתעודות. חבילת certbot כלולה במאגרי ברירת המחדל של אובונטו.
עדכן את רשימת החבילות והתקן את חבילת certbot:
sudo apt update
sudo apt install certbot
צור קבוצת Dh (דיפי-הלמן) חזקה
החלפת מפתחות 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.
כדי להפוך את זה פשוט יותר אנו למפות את כל בקשות ה- 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 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS'; ssl_prefer_server_ciphers on; 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=15768000; includeSubdomains; preload"; add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff;
לאחר יצירת ה- Snippets, פתח את חסימת שרת הדומיין וכולל את קטע הטקסט
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
, הנקראת על ידי Nginx במהלך ההפעלה:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
הפעל מחדש את שירות Nginx כדי שהשינויים ייכנסו לתוקף:
sudo systemctl restart nginx
כעת תוכל להריץ את Certbot באמצעות התוסף webroot ולקבל את קבצי אישור ה- SSL על ידי הנפקה:
sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
אם אישור ה- SSL מתקבל בהצלחה, certbot ידפיס את ההודעה הבאה:
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 2018-07-28. 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" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:
כעת כשיש לך את קבצי האישורים, אתה יכול לערוך את חסימת שרת הדומיין שלך באופן הבא:
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 }
עם התצורה שלמעלה אנו מכריחים HTTPS ומפנים מחדש מגירסת www לגירסה שאינה www.
טען מחדש את שירות Nginx כדי שינויים ייכנסו לתוקף:
חידוש אוטומטי של בואו להצפין אישור SSL
תעודות בואו להצפין תקפות למשך 90 יום. כדי לחדש אוטומטית את האישורים לפני שפג תוקפם, חבילת ה- certbot יוצרת עבודת מציצה הפועלת פעמיים ביום והיא תחדש אוטומטית כל תעודה 30 יום לפני פקיעתה.
מכיוון שאנו משתמשים בתוסף האינטרנט של certbot webroot ברגע שהתחדש האישור, עלינו לטעון מחדש את שירות 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"
כדי לבדוק את תהליך החידוש, אתה יכול להשתמש במתג
--dry-run
:
sudo certbot renew --dry-run
אם אין שגיאות, פירוש הדבר שתהליך החידוש היה מוצלח.
סיכום
במדריך זה השתמשת בלקוח Let's Encrypt, certbot כדי להוריד תעודות SSL עבור התחום שלך. יצרת גם קטעי Nginx כדי למנוע כפילות של קוד והגדרת את Nginx לשימוש בתעודות. בסוף ההדרכה הקמתם מציצה לחידוש תעודה אוטומטית.
nginx אובונטו בואו להצפין certbot sslפוסט זה הוא חלק מהסדרה כיצד להתקין-lemp-stack-on-ubuntu-18-04.
פוסטים אחרים בסדרה זו:
• כיצד להתקין Nginx באובונטו 18.04 • כיצד להתקין חסימות שרת Nginx באובונטו 18.04 • מאובטח Nginx עם בואו להצפין באובונטו 18.04 • כיצד להתקין את MySQL באובונטו 18.04 • כיצד להתקין PHP באובונטו 18.04אבטח nginx עם בוא להצפין ב- centos 7

במדריך זה אנו נספק הוראות שלב אחר שלב כיצד לאבטח את ה- Nginx שלך באמצעות Let's Encrypt באמצעות כלי certbot ב- CentOS 7
אבטח nginx עם בוא להצפין ב- debian 9

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

במדריך זה נספק הוראות שלב אחר שלב כיצד לאבטח את ה- Nginx שלך באמצעות Let's Encrypt באמצעות כלי certbot באובונטו 16.04