Установка Reverse Proxy Nginx+Apache2+SSL от Let's Encrypt за 30 минут на Debian 9
תוכן עניינים:
- תנאים מוקדמים
- התקן את Certbot
- צור קבוצת Dh (דיפי-הלמן) חזקה
- קבלת אישור בואו להצפין SSL
- חידוש אוטומטי של בואו להצפין אישור SSL
- סיכום
Let's Encrypt היא רשות אישורים חינמית ופתוחה שפותחה על ידי קבוצת המחקר בנושא אבטחת אינטרנט (ISRG). כמעט כל הדפדפנים כיום מהימנים על אישורים שהונפקו על ידי Let's Encrypt.
במדריך זה נסביר כיצד להשתמש בכלי Certbot כדי להשיג אישור SSL בחינם עבור Nginx ב- Debian 9. כמו כן, נראה כיצד להגדיר את Nginx להשתמש בתעודת SSL ולאפשר HTTP / 2.
תנאים מוקדמים
יש לוודא כי מתקיימים התנאים המוקדמים הבאים לפני שתמשיך במדריך זה:
- התחבר כמשתמש עם הרשאות sudo. יש שם תחום שמצביע על IP השרת הציבורי שלך. אנו נשתמש ב-
example.com
Nginx מותקן על ידי ביצוע הוראות אלה יש לך חסימת שרת עבור הדומיין שלך. תוכל לעקוב אחר ההוראות הבאות לקבלת פרטים כיצד ליצור הוראות.
התקן את Certbot
Certbot הוא כלי מלא ובקלות לשימוש המאפשר להפוך את המשימות להשגת וחידוש Let's Encrypt SSL של אישורים ולהגדרת שרתי אינטרנט לשימוש בתעודות. חבילת certbot כלולה במאגרי ברירת המחדל של Debian.
עדכן את רשימת החבילות והתקן את חבילת 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.
אנו
/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 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;
בסיום, פתח את קובץ החסימה של שרת הדומיין וכולל את קטע ה-
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
כעת תוכל להריץ את Certbot באמצעות התוסף webroot ולקבל את קבצי אישור ה- SSL על ידי הנפקה:
sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
אם אישור SSL מתקבל בהצלחה, ההודעה הבאה יודפסת במסוף שלך:
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 שאינו 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"
בדוק את תהליך החידוש האוטומטי על ידי הפעלת פקודה זו:
sudo certbot renew --dry-run
אם אין שגיאות, פירוש הדבר שתהליך החידוש היה מוצלח.
סיכום
בעל תעודת SSL הוא חובה בימינו. זה מאבטח את האתר שלך, מגדיל את מיקום דירוג ה- SERP ומאפשר לך להפעיל HTTP / 2 בשרת האינטרנט שלך.
במדריך זה השתמשת בלקוח Let's Encrypt, certbot כדי ליצור תעודות SSL עבור התחום שלך. יצרת גם קטעי Nginx כדי למנוע כפילות של קוד והגדרת את Nginx לשימוש בתעודות. בסוף ההדרכה הקמתם מציצה לחידוש תעודה אוטומטית.
nginx debian בואו להצפין certbot sslפוסט זה הוא חלק מהסדרה כיצד להתקין LEMP Stack בסדרת Debian 9.
פוסטים אחרים בסדרה זו:
• כיצד להתקין MariaDB באובונטו 18.04 • כיצד להתקין Nginx ב- Debian 9 • כיצד להתקין PHP ב- Debian 9 • כיצד להתקין חסימות שרת Nginx ב- Debian 9 • Nginx מאובטח עם קידוד בואו ב- Debian 9אבטח nginx עם בוא להצפין ב- centos 7

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

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

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