אנדרואיד

אבטח nginx עם בוא להצפין ב- centos 8

How to Install and Run NGINX on CentOS 8 RHEL 8

How to Install and Run NGINX on CentOS 8 RHEL 8

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

Anonim

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

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

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

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

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

  • יש לך שם דומיין שמצביע על ה- IP הציבורי שלך. אנו נשתמש ב- example.com . יש לך Nginx המותקן בשרת CentOS שלך. חומת האש שלך מוגדרת לקבל חיבורים ביציאות 80 ו 443.

התקנת Certbot

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

חבילת certbot אינה כלולה במאגרי CentOS 8 הסטנדרטיים, אך ניתן להוריד אותה מאתר הספק.

הפעל את הפקודה הבאה של wget כמשתמש שורש או sudo כדי להוריד את סקריפט certbot לספרייה /usr/local/bin :

sudo wget -P /usr/local/bin

לאחר השלמת ההורדה, הפוך את הקובץ להפעלה:

sudo chmod +x /usr/local/bin/certbot-auto

מייצרת קבוצת Dh (דיפי-הלמן) חזקה

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

צור קבוצה חדשה של פרמטרים DH של 2048 ביט על ידי הקלדת הפקודה הבאה:

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

קבלת אישור בואו להצפין 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:10m; 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;

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

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

/etc/nginx/conf.d/example.com.conf

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

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

sudo systemctl reload nginx

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

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

אם זו הפעם הראשונה certbot , הכלי יתקין את התלות החסרה.

לאחר קבלת אישור 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 2020-03-12. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:

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

/etc/nginx/conf.d/example.com.conf

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 כדי שינויים ייכנסו לתוקף:

sudo systemctl reload nginx

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

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

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

השתמש בפקודה crontab כדי ליצור cronjob חדש:

sudo crontab -e

הדבק את השורה הבאה:

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

שמור וסגור את הקובץ.

כדי לבדוק את תהליך החידוש, אתה יכול להשתמש בפקודה certbot ולאחריהם מתג --dry-run :

sudo certbot renew --dry-run

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

סיכום

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

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

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