Installing and Configuring NGINX on CentOS
תוכן עניינים:
- תנאים מוקדמים
- התקן את Certbot
- צור קבוצת Dh (דיפי-הלמן) חזקה
- קבלת אישור בואו להצפין SSL
- חידוש אוטומטי של בואו להצפין אישור SSL
- סיכום
Let's Encrypt היא רשות אישורים חינמית ופתוחה שפותחה על ידי קבוצת המחקר בנושא אבטחת אינטרנט (ISRG). כמעט כל הדפדפנים כיום מהימנים על אישורים שהונפקו על ידי Let's Encrypt.
במדריך זה נספק הוראות שלב אחר שלב כיצד לאבטח את ה- Nginx שלך באמצעות Let's Encrypt באמצעות כלי certbot ב- CentOS 7.
תנאים מוקדמים
וודא כי עמדת בתנאים המוקדמים הבאים לפני שתמשיך במדריך זה:
- יש לך שם תחום שמצביע על IP השרת הציבורי שלך. במדריך זה נשתמש ב-
example.com
. אפשרת את מאגר ה- EPEL והתקנת את Nginx על ידי ביצוע הוראות להתקנת Nginx ב- CentOS 7.
התקן את Certbot
Certbot הוא כלי קל לשימוש שיכול להפוך את המשימות לאוטומציה להשגת וחידוש Let's Encrypt אישורי SSL ולהגדרת שרתי אינטרנט.
להתקנת חבילת certbot בטופס מאגר ה- EPEL:
צור קבוצת 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.
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp nginx /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt
כדי להימנע משכפול קוד, צור את שני הקטעים הבאים אותם אנו הולכים לכלול בכל קבצי החסימה של שרת Nginx שלנו:
sudo mkdir /etc/nginx/snippets
/etc/nginx/snippets/letsencrypt.conf
location ^~ /.well-known/acme-challenge/ { allow all; root /var/lib/letsencrypt/; default_type "text/plain"; try_files $uri =404; }
/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;
הקטע שלמעלה כולל את השבבים המומלצים על ידי מוזילה, מאפשרים סיכות OCSP, HTTP Strict Transport Transport (HSTS) ואכיפת מעט כותרות HTTP ממוקדות אבטחה.
לאחר יצירת ה- Snippets, פתח את חסימת שרת הדומיין וכולל את קטע הטקסט
letsencrypt.conf
כמוצג להלן:
server { listen 80; server_name example.com www.example.com; include snippets/letsencrypt.conf; }
טען מחדש את תצורת Nginx כדי שינויים ייכנסו לתוקף:
sudo systemctl reload 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-06-11. 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:
כעת כשיש לך את קבצי האישורים, אתה יכול לערוך את חסימת שרת הדומיין שלך באופן הבא:
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 יום. כדי לחדש אוטומטית את האישורים לפני שפג תוקפם, אנו ניצור עבודת מציצה שתפעל פעמיים ביום ונחדש אוטומטית כל אישור 30 יום לפני פקיעתו.
הפעל את הפקודה
crontab
כדי ליצור cronjob חדש:
sudo crontab -e
הדבק את השורות הבאות:
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"
שמור וסגור את הקובץ.
כדי לבדוק את תהליך החידוש, אתה יכול להשתמש בפקודה certbot ולאחריהם מתג
--dry-run
:
sudo certbot renew --dry-run
אם אין שגיאות, פירוש הדבר שתהליך חידוש הבדיקה היה מוצלח.
סיכום
במדריך זה השתמשת בלקוח Let's Encrypt, certbot כדי להוריד תעודות SSL עבור התחום שלך. יצרת גם קטעי Nginx כדי למנוע כפילות של קוד והגדרת את Nginx לשימוש בתעודות. בסוף ההדרכה הקמתם מציצה לחידוש תעודה אוטומטית.
nginx centos בואו להצפין certbot sslפוסט זה הוא חלק מסדרת התקנת LEMP בסדרת CentOS 7.
פוסטים אחרים בסדרה זו:
כיצד להתקין Nginx ב- CentOS 7 • Nginx מאובטח עם קידוד בואו ב- CentOS 7 • התקנת MariaDB ב- CentOS 7 • התקנת PHP 7 על CentOS 7 • כיצד להתקין בלוקים של שרת Nginx ב- CentOS 7אבטח nginx עם בוא להצפין ב- debian 9

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

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

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