पृथà¥?वी पर सà¥?थित à¤à¤¯à¤¾à¤¨à¤• नरक मंदिर | Amazing H
สารบัญ:
- ข้อกำหนดเบื้องต้น
- ติดตั้ง Certbot
- สร้างกลุ่ม Strong Dh (Diffie-Hellman)
- รับใบรับรอง Let's Encrypt SSL
- ต่ออายุใบรับรอง SSL โดยอัตโนมัติ
- ข้อสรุป
Let's Encrypt เป็นผู้ออกใบรับรองที่เปิดกว้างฟรีที่ได้รับการพัฒนาโดย Internet Security Research Group (ISRG) ใบรับรองที่ออกโดย Let's Encrypt นั้นได้รับความไว้วางใจจากเบราว์เซอร์เกือบทั้งหมดในปัจจุบัน
ในบทช่วยสอนนี้เราจะให้คำแนะนำทีละขั้นตอนเกี่ยวกับการรักษาความปลอดภัย Nginx ของคุณด้วย Let's Encrypt โดยใช้เครื่องมือ certbot บน Ubuntu 16.04
ข้อกำหนดเบื้องต้น
ตรวจสอบให้แน่ใจว่าคุณได้ทำตามข้อกำหนดเบื้องต้นต่อไปนี้ก่อนที่จะดำเนินการกับบทช่วยสอนนี้:
- คุณมีชื่อโดเมนที่ชี้ไปที่ IP เซิร์ฟเวอร์สาธารณะของคุณ ในบทช่วยสอนนี้เราจะใช้
example.com
คุณมี Nginx ติดตั้งโดยทำตามวิธีการติดตั้ง Nginx บน Ubuntu 16.04
ติดตั้ง Certbot
Certbot เป็นโปรแกรมที่เขียนด้วยไพ ธ อนซึ่งสามารถทำงานอัตโนมัติเพื่อรับและต่ออายุ Let's Encrypt SSL certificate และกำหนดค่าเว็บเซิร์ฟเวอร์
ขั้นแรกให้ติดตั้งแพ็คเกจ
software-properties-common
ซึ่งมีเครื่องมือ
add-apt-repository
ที่จำเป็นสำหรับการเพิ่ม PPAs เพิ่มเติม
อัพเดตดัชนีแพ็กเกจและติดตั้ง
software-properties-common
ด้วย:
sudo apt update
sudo apt install software-properties-common
เมื่อการติดตั้งเสร็จสมบูรณ์ให้เพิ่มที่เก็บ certbot PPA ในระบบของคุณโดยใช้คำสั่งต่อไปนี้:
sudo add-apt-repository ppa:certbot/certbot
อัพเดตรายการแพ็กเกจและติดตั้งแพ็กเกจ certbot:
sudo apt update
sudo apt install certbot
สร้างกลุ่ม Strong Dh (Diffie-Hellman)
การแลกเปลี่ยนคีย์ Diffie – Hellman (DH) เป็นวิธีการแลกเปลี่ยนคีย์เข้ารหัสลับอย่างปลอดภัยผ่านช่องทางการสื่อสารที่ไม่ปลอดภัย สร้างชุดพารามิเตอร์ DH 2048 บิตใหม่เพื่อเสริมความปลอดภัย:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
หากคุณชอบคุณสามารถเปลี่ยนขนาดได้สูงสุด 4096 บิต แต่ในกรณีนี้การสร้างอาจใช้เวลามากกว่า 30 นาทีขึ้นอยู่กับเอนโทรปีของระบบ
รับใบรับรอง Let's Encrypt SSL
ในการรับใบรับรอง SSL สำหรับโดเมนของเราเราจะใช้ปลั๊กอิน Webroot ที่ทำงานโดยการสร้างไฟล์ชั่วคราวสำหรับการตรวจสอบโดเมนที่ร้องขอใน
${webroot-path}/.well-known/acme-challenge
ไดเรกทอรีที่
${webroot-path}/.well-known/acme-challenge
เซิร์ฟเวอร์ Let's Encrypt ส่งคำขอ HTTP ไปยังไฟล์ชั่วคราวเพื่อตรวจสอบว่าโดเมนที่ร้องขอแก้ไขไปยังเซิร์ฟเวอร์ที่ Certbot ทำงานอยู่
เพื่อให้ง่ายขึ้นเราจะทำแผนที่คำขอ HTTP ทั้งหมดสำหรับ
.well-known/acme-challenge
ไปยังไดเรกทอรีเดียว
/var/lib/letsencrypt
คำสั่งต่อไปนี้จะสร้างไดเรกทอรีและทำให้สามารถเขียนได้สำหรับเซิร์ฟเวอร์ Nginx
mkdir -p /var/lib/letsencrypt/.well-known
chgrp www-data /var/lib/letsencrypt
chmod g+s /var/lib/letsencrypt
เพื่อหลีกเลี่ยงรหัสที่ซ้ำกันให้สร้างตัวอย่างสองรายการต่อไปนี้ซึ่งเราจะรวมไว้ในไฟล์บล็อกเซิร์ฟเวอร์ Nginx ทั้งหมดของเรา
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;
ตัวอย่างด้านบนมีตัวย่อยแนะนำโดย Mozilla เปิดใช้งาน OCSP Stapling, HTTP Strict Transport Security (HSTS) และบังคับใช้ส่วนหัว HTTP HTTP ที่เน้นความปลอดภัย
เมื่อสร้างสนิปเพตแล้วให้เปิดบล็อกเซิร์ฟเวอร์โดเมนและรวม
letsencrypt.conf
ตามที่แสดงด้านล่าง:
server { listen 80; server_name example.com www.example.com; include snippets/letsencrypt.conf; }
เปิดใช้งานบล็อกเซิร์ฟเวอร์โดยสร้างลิงก์สัญลักษณ์จาก
sites-available
กับ
sites-enabled
:
sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.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-04-23. 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:
ตอนนี้เรามีไฟล์ใบรับรองแล้วให้แก้ไขบล็อกเซิร์ฟเวอร์โดเมนดังนี้:
/etc/nginx/sites-available/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
ของโดเมนไปเป็นเวอร์ชันที่
non www
โหลดบริการ Nginx อีกครั้งเพื่อให้การเปลี่ยนแปลงมีผล:
ต่ออายุใบรับรอง SSL โดยอัตโนมัติ
ใบรับรองของ Encrypt นั้นมีอายุ 90 วัน ในการต่ออายุใบรับรองโดยอัตโนมัติก่อนที่จะหมดอายุแพคเกจ certbot สร้าง cronjob ซึ่งจะทำงานสองครั้งต่อวันและจะต่ออายุใบรับรองใด ๆ โดยอัตโนมัติ 30 วันก่อนที่จะหมดอายุ
เนื่องจากเราใช้ปลั๊กอินเว็บรูท certbot เมื่อมีการต่ออายุใบรับรองเราจึงต้องโหลดบริการ nginx อีกครั้ง ในการทำเช่นนั้นผนวก
--renew-hook "systemctl reload nginx"
เข้ากับไฟล์
/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 ให้ใช้ใบรับรอง ในตอนท้ายของบทช่วยสอนคุณได้ตั้งค่า cronjob สำหรับการต่ออายุใบรับรองอัตโนมัติ
nginx อูบุนตูลองเข้ารหัส certbot sslรักษาความปลอดภัย nginx ด้วย Let's เข้ารหัสบน Ubuntu 18.04

Let's Encrypt เป็นผู้ออกใบรับรองที่เปิดกว้างฟรีที่ได้รับการพัฒนาโดย Internet Security Research Group ในบทช่วยสอนนี้เราจะให้คำแนะนำทีละขั้นตอนเกี่ยวกับวิธีการรักษาความปลอดภัย Nginx ของคุณด้วย Let's Encrypt โดยใช้เครื่องมือ certbot บน Ubuntu 18.04
การรักษาความปลอดภัย Apache ด้วย Let's เข้ารหัสบน Ubuntu 18.04

ในบทช่วยสอนนี้เราจะให้คำแนะนำทีละขั้นตอนเกี่ยวกับการรักษาความปลอดภัย Apache ของคุณด้วย Let's Encrypt โดยใช้เครื่องมือ certbot บน Ubuntu 18.04
Secure nginx ด้วย Let's เข้ารหัสบน debian 10 linux

บทช่วยสอนนี้แสดงวิธีการติดตั้งใบรับรอง Let's Encrypt SSL ฟรีบน Debian 10, Buster ที่ใช้ Nginx เป็นเว็บเซิร์ฟเวอร์ นอกจากนี้เราจะแสดงวิธีกำหนดค่า Nginx ให้ใช้ใบรับรอง SSL และเปิดใช้งาน HTTP / 2