ค้นหาเว็บไซต์

วิธีรักษาความปลอดภัย Apache ด้วย Let's Encrypt SSL Certificate ฟรีบน Ubuntu และ Debian


คุณมีชื่อโดเมนที่จดทะเบียนใหม่และเว็บเซิร์ฟเวอร์ของคุณทำงานด้วย ใบรับรอง SSL ที่ลงนามด้วยตนเอง ที่ออกโดยคุณ ซึ่งทำให้ลูกค้าของคุณปวดหัวในขณะที่พวกเขาเยี่ยมชมโดเมนเนื่องจากข้อผิดพลาดที่สร้างขึ้นของใบรับรอง คุณมีงบประมาณที่จำกัดและคุณไม่สามารถซื้อใบรับรองที่ออกโดย CA ที่เชื่อถือได้ใช่หรือไม่ นี่คือเวลาที่ซอฟต์แวร์ Let's Encrypt เข้ามามีบทบาทและกอบกู้โลก

หากคุณต้องการติดตั้ง Let's Encrypt สำหรับ Apache หรือ Nginx บน RHEL, CentOS, Fedora หรือ Ubuntu และ Debian ให้ทำตามคำแนะนำด้านล่าง:

ตั้งค่า Let's Encrypt เพื่อรักษาความปลอดภัย Apache บน RHEL และ CentOS 7/6

ตั้งค่า Let's Encrypt เพื่อรักษาความปลอดภัย Nginx บน Ubuntu และ Debian

Let's Encrypt คือ ผู้ออกใบรับรอง (CA) ซึ่งอำนวยความสะดวกให้คุณในการรับใบรับรอง SSL/TLS ฟรีที่จำเป็นสำหรับคุณ เซิร์ฟเวอร์ทำงานอย่างปลอดภัย สร้างประสบการณ์การท่องเว็บที่ราบรื่นให้กับผู้ใช้ของคุณโดยไม่มีข้อผิดพลาดใดๆ

การทดสอบสภาพแวดล้อมตัวอย่าง

ขั้นตอนทั้งหมดที่จำเป็นในการสร้างใบรับรองส่วนใหญ่เป็นแบบอัตโนมัติสำหรับเว็บเซิร์ฟเวอร์ Apache อย่างไรก็ตาม แม้ว่าคุณจะใช้ซอฟต์แวร์เว็บเซิร์ฟเวอร์ แต่บางขั้นตอนก็ต้องดำเนินการด้วยตนเองและต้องติดตั้งใบรับรองด้วยตนเอง โดยเฉพาะอย่างยิ่งในกรณีที่เนื้อหาเว็บไซต์ของคุณให้บริการโดย Nginx daemon

บทช่วยสอนนี้จะแนะนำคุณเกี่ยวกับวิธีที่คุณสามารถติดตั้งซอฟต์แวร์ Let's Encrypt บน Ubuntu หรือ Debian สร้างและรับใบรับรองฟรีสำหรับโดเมนของคุณ และวิธีดำเนินการ คุณสามารถติดตั้งใบรับรองด้วยตนเองบนเว็บเซิร์ฟเวอร์ Apache และ Nginx

ความต้องการ

  1. ชื่อโดเมนสาธารณะที่จดทะเบียนพร้อมบันทึก A ที่ถูกต้องเพื่อชี้กลับไปยังที่อยู่ IP ภายนอกของเซิร์ฟเวอร์ของคุณ ในกรณีที่เซิร์ฟเวอร์ของคุณอยู่หลังไฟร์วอลล์ ให้ใช้มาตรการที่จำเป็นเพื่อให้แน่ใจว่าเซิร์ฟเวอร์ของคุณสามารถเข้าถึงได้ทั่วทั้งคำจากอินเทอร์เน็ต โดยการเพิ่มกฎการส่งต่อพอร์ตที่ฝั่งเราเตอร์
  2. เว็บเซิร์ฟเวอร์ Apache ที่ติดตั้งโดยเปิดใช้งานโมดูล SSL และเปิดใช้งานโฮสติ้งเสมือน ในกรณีที่คุณโฮสต์หลายโดเมนหรือโดเมนย่อย

ขั้นตอนที่ 1: ติดตั้ง Apache และเปิดใช้งานโมดูล SSL

1. หากคุณยังไม่ได้ติดตั้งเว็บเซิร์ฟเวอร์ Apache ไว้ในเครื่องของคุณ ให้ออกคำสั่งต่อไปนี้เพื่อติดตั้ง apache daemon

sudo apt-get install apache2

2. การเปิดใช้งานโมดูล SSL สำหรับเว็บเซิร์ฟเวอร์ Apache บน Ubuntu หรือ Debian ค่อนข้างตรงไปตรงมา เปิดใช้งานโมดูล SSL และเปิดใช้งานโฮสต์เสมือน SSL เริ่มต้นของ apache โดยการออกคำสั่งด้านล่าง:

sudo a2enmod ssl
sudo a2ensite default-ssl.conf
sudo service apache2 restart
or
sudo systemctl restart apache2.service

ขณะนี้ผู้เยี่ยมชมสามารถเข้าถึงชื่อโดเมนของคุณผ่านทางโปรโตคอล HTTPS อย่างไรก็ตาม เนื่องจากใบรับรองที่ลงนามด้วยตนเองของเซิร์ฟเวอร์ของคุณไม่ได้ออกโดยผู้ออกใบรับรองที่เชื่อถือได้ การแจ้งเตือนข้อผิดพลาดจึงจะแสดงบนเบราว์เซอร์ตามที่แสดงในภาพด้านล่าง

https://yourdomain.com

ขั้นตอนที่ 2: ติดตั้ง Let's Encrypt Client ฟรี

3. ในการติดตั้งซอฟต์แวร์ Let’s Encrypt บนเซิร์ฟเวอร์ของคุณ คุณต้องมีแพ็คเกจ git ติดตั้งอยู่บนระบบของคุณ ออกคำสั่งต่อไปนี้เพื่อติดตั้งซอฟต์แวร์ git:

sudo apt-get -y install git

4. ถัดไป เลือกไดเร็กทอรีจากลำดับชั้นระบบของคุณที่คุณต้องการโคลนที่เก็บคอมไพล์ Let's Encrypt ในบทช่วยสอนนี้ เราจะใช้ไดเรกทอรี /usr/local/ เป็นเส้นทางการติดตั้งสำหรับ Let's Encrypt

สลับไปที่ไดเร็กทอรี /usr/local และติดตั้งไคลเอนต์ Letencrypt โดยใช้คำสั่งต่อไปนี้:

cd /usr/local
sudo git clone https://github.com/letsencrypt/letsencrypt

ขั้นตอนที่ 4: สร้างใบรับรอง SSL สำหรับ Apache

5. กระบวนการรับใบรับรอง SSL สำหรับ Apache นั้นเป็นไปโดยอัตโนมัติด้วยปลั๊กอิน Apache สร้างใบรับรองโดยการออกคำสั่งต่อไปนี้กับชื่อโดเมนของคุณ ระบุชื่อโดเมนของคุณเป็นพารามิเตอร์ให้กับแฟล็ก -d

cd /usr/local/letsencrypt
sudo ./letsencrypt-auto --apache -d your_domain.tld

ตัวอย่างเช่น หากคุณต้องการให้ใบรับรองดำเนินการกับหลายโดเมนหรือโดเมนย่อย ให้เพิ่มทั้งหมดโดยใช้แฟล็ก -d สำหรับบันทึก DNS ที่ถูกต้องพิเศษแต่ละรายการหลังชื่อโดเมนฐาน

sudo ./letsencrypt-auto --apache -d your_domain.tld  -d www. your_domain.tld 

6. ยอมรับใบอนุญาต ป้อนที่อยู่อีเมลสำหรับการกู้คืน และเลือกว่าไคลเอ็นต์สามารถเรียกดูโดเมนของคุณโดยใช้ทั้งโปรโตคอล HTTP (ปลอดภัยและไม่ปลอดภัย) หรือเปลี่ยนเส้นทางคำขอที่ไม่ปลอดภัยทั้งหมดไปยัง HTTPS

7. หลังจากกระบวนการติดตั้งเสร็จสิ้นเรียบร้อยแล้ว ข้อความแสดงความยินดีจะปรากฏขึ้นบนคอนโซลของคุณเพื่อแจ้งให้คุณทราบเกี่ยวกับวันหมดอายุและวิธีที่คุณสามารถทดสอบการกำหนดค่าตามที่แสดงในภาพหน้าจอด้านล่าง

ตอนนี้คุณควรจะสามารถค้นหาไฟล์ใบรับรองของคุณได้ที่ไดเร็กทอรี /etc/letsencrypt/live พร้อมด้วยรายการไดเร็กทอรีแบบธรรมดา

sudo ls /etc/letsencrypt/live

8. สุดท้าย หากต้องการตรวจสอบสถานะของใบรับรอง SSL ของคุณ โปรดไปที่ลิงก์ต่อไปนี้ เปลี่ยนชื่อโดเมนตามลำดับ

https://www.ssllabs.com/ssltest/analyze.html?d=your_domain.tld&latest

นอกจากนี้ ผู้เยี่ยมชมสามารถเข้าถึงชื่อโดเมนของคุณโดยใช้โปรโตคอล HTTPS โดยไม่มีข้อผิดพลาดใด ๆ ปรากฏในเว็บเบราว์เซอร์ของพวกเขา

ขั้นตอนที่ 4: ต่ออายุอัตโนมัติให้เข้ารหัสใบรับรอง

9. ตามค่าเริ่มต้น ใบรับรองที่ออกโดยหน่วยงาน Let’s Encrypt จะมีอายุการใช้งาน 90 วัน ในการต่ออายุใบรับรองก่อนวันหมดอายุ คุณต้องเรียกใช้ไคลเอ็นต์ด้วยตนเองอีกครั้งโดยใช้แฟล็กและพารามิเตอร์เหมือนกับก่อนหน้านี้

sudo ./letsencrypt-auto --apache -d your_domain.tld

หรือในกรณีที่มีหลายโดเมนย่อย:

sudo ./letsencrypt-auto --apache -d your_domain.tld  -d www. your_domain.tld

10. กระบวนการต่ออายุใบรับรองสามารถทำงานอัตโนมัติได้ภายในเวลาน้อยกว่า 30 วันก่อนวันหมดอายุโดยใช้ cron daemon กำหนดการของ Linux

sudo crontab -e

เพิ่มคำสั่งต่อไปนี้ที่ส่วนท้ายของไฟล์ crontab โดยใช้บรรทัดเดียวเท่านั้น:

0 1 1 */2 * cd /usr/local/letsencrypt && ./letsencrypt-auto certonly --apache --renew-by-default --apache -d domain.tld >> /var/log/domain.tld-renew.log 2>&1

11. รายละเอียดเกี่ยวกับไฟล์การกำหนดค่าโดเมนการต่ออายุสำหรับซอฟต์แวร์ Let's Encrypt มีอยู่ในไดเรกทอรี /etc/letsencrypt/renewal/

cat /etc/letsencrypt/renewal/caeszar.tk.conf

คุณควรตรวจสอบไฟล์ /etc/letsencrypt/options-ssl-apache.conf เพื่อดูไฟล์การกำหนดค่า SSL ใหม่สำหรับเว็บเซิร์ฟเวอร์ Apache

12. นอกจากนี้ มาเข้ารหัสปลั๊กอิน apache เพื่อแก้ไขไฟล์บางไฟล์ในการกำหนดค่าเว็บเซิร์ฟเวอร์ของคุณ เพื่อตรวจสอบว่าไฟล์ใดได้รับการแก้ไข ให้แสดงรายการเนื้อหาของไดเร็กทอรี /etc/apache2/sites-enabled

ls /etc/apache2/sites-enabled/
sudo cat /etc/apache2/sites-enabled/000-default-le-ssl.conf

นั่นคือทั้งหมดที่สำหรับตอนนี้! ในชุดบทช่วยสอนถัดไปจะพูดถึงวิธีที่คุณสามารถรับและติดตั้งใบรับรอง Let's Encrypt สำหรับเว็บเซิร์ฟเวอร์ Nginx บน Ubuntu และ Debian< และบน CentOS เช่นกัน