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

รักษาความปลอดภัย Apache ด้วยให้เข้ารหัสใบรับรอง SSL บน CentOS 8


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

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

การอ่านที่แนะนำ: วิธีรักษาความปลอดภัย Nginx ด้วย Let's Encrypt บน CentOS 8

ในบทความนี้ เราจะแสดงให้คุณเห็นว่าคุณสามารถติดตั้ง Let's Encrypt Certificate ด้วย Certbot สำหรับเว็บเซิร์ฟเวอร์ Apache ได้อย่างไร และกำหนดค่าใบรับรองในภายหลัง เพื่อต่ออายุอัตโนมัติบน CentOS 8

ข้อกำหนดเบื้องต้น

ก่อนที่คุณจะเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณมีสิ่งต่อไปนี้:

1. อินสแตนซ์ของเซิร์ฟเวอร์ CentOS 8 ที่ติดตั้งและใช้งานเว็บเซิร์ฟเวอร์ Apache HTTP คุณสามารถยืนยันได้ว่าเว็บเซิร์ฟเวอร์ apache ของคุณเปิดใช้งานและทำงานอยู่

sudo dnf install httpd
sudo systemctl status httpd

2. ชื่อโดเมนแบบเต็ม (FQDN) ชี้ไปยังที่อยู่ IP สาธารณะของเว็บเซิร์ฟเวอร์ของคุณบนผู้ให้บริการโฮสต์เว็บ DNS ของคุณ สำหรับคู่มือนี้ เราจะใช้ linuxtechwhiz.info ชี้ไปที่ IP ของเซิร์ฟเวอร์ 34.67.63.136

ขั้นตอนที่ 1 ติดตั้ง Certbot ใน CentOS 8

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

Certbot ให้บริการฟรีและจะช่วยให้คุณสามารถติดตั้งใบรับรองในลักษณะโต้ตอบโดยสร้างคำแนะนำตามการกำหนดค่าของเว็บเซิร์ฟเวอร์ของคุณ

ก่อนที่จะดาวน์โหลด certbot ขั้นแรกให้ติดตั้งแพ็คเกจที่จำเป็นสำหรับการกำหนดค่าการเชื่อมต่อที่เข้ารหัส

เราจะเริ่มต้นด้วยการติดตั้งพื้นที่เก็บข้อมูล EPEL ซึ่งมีแพ็คเกจเพิ่มเติมคุณภาพสูงสำหรับระบบที่ใช้ RHEL:

sudo dnf install epel-release

จากนั้น ติดตั้งแพ็คเกจ mod_ssl และ openssl

sudo dnf install mod_ssl openssl

เมื่อติดตั้งการอ้างอิงทั้งหมดแล้ว ให้ติดตั้ง Certbot และโมดูล Apache สำหรับ Certbot

sudo dnf install certbot python3-certbot-apache

คำสั่งจะติดตั้ง Certbot, โมดูล Apache สำหรับ Certbot และการอ้างอิงอื่นๆ

ขั้นตอนที่ 2: สร้างโฮสต์เสมือน Apache

ขั้นตอนต่อไปคือการสร้างไฟล์โฮสต์เสมือนสำหรับโดเมนของเรา – linuxtechwhiz.info เริ่มต้นด้วยการสร้างรูทเอกสารที่คุณจะวางไฟล์ HTML ของคุณ

sudo mkdir /var/www/linuxtechwhiz.info.conf

สร้างไฟล์ทดสอบ index.html ตามที่แสดง

sudo echo “<h1>Welcome to Apache HTTP server</h1>” > /var/www/linuxtechwhiz.info/index.html

จากนั้นสร้างไฟล์โฮสต์เสมือนตามที่แสดง

sudo vim /etc/httpd/conf.d/linuxtechwhiz.info

ผนวกการกำหนดค่าด้านล่าง

<VirtualHost *:443>
  ServerName linuxtechwhiz.info
  ServerAlias www.linuxtechwhiz.info
  DocumentRoot /var/www/linuxtechwhiz.info/
  <Directory /var/www/linuxtechwhiz.info/>
      Options -Indexes +FollowSymLinks
      AllowOverride All
  </Directory>
  ErrorLog /var/log/httpd/www.linuxtechwhiz.info-error.log
  CustomLog /var/log/httpd/www.linuxtechwhiz.info-access.log combined
</VirtualHost>

บันทึกและออก.

กำหนดสิทธิ์ให้กับรูทเอกสารตามที่แสดง

sudo chown -R apache:apache /var/www/linuxtechwhiz.info

เพื่อให้การเปลี่ยนแปลงมีผล ให้รีสตาร์ทบริการ Apache

sudo systemctl restart httpd

ขั้นตอนที่ 3: ติดตั้ง Let's Encrypt SSL Certificate บน CentOS 8

ตอนนี้ให้เรียกใช้ certbot ตามที่แสดงเพื่อเริ่มการติดตั้ง Let's Encrypt Certificate

sudo certbot --apache -d domain.com

ในกรณีของเรา นี่จะเป็น:

sudo certbot --apache -d linuxtechwhiz.info

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

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

ตอนนี้กลับไปที่ไฟล์โฮสต์เสมือนของคุณและต่อท้ายบรรทัดการกำหนดค่าต่อไปนี้

SSLEngine On
 SSLCertificateFile    /etc/letsencrypt/live/linuxtechwhiz.info/fullchain.pem
 SSLCertificateKeyFile  /etc/letsencrypt/live/linuxtechwhiz.info/privkey.pem

บันทึกและออก.

การกำหนดค่าโฮสต์เสมือน Apache สุดท้ายจะมีลักษณะดังนี้:

<VirtualHost *:443>
  ServerName linuxtechwhiz.info
  ServerAlias www.linuxtechwhiz.info
  DocumentRoot /var/www/linuxtechwhiz.info/
  <Directory /var/www/linuxtechwhiz.info/>
      Options -Indexes +FollowSymLinks
      AllowOverride All
  </Directory>
  ErrorLog /var/log/httpd/www.linuxtechwhiz.info-error.log
  CustomLog /var/log/httpd/www.linuxtechwhiz.info-access.log combined

 SSLEngine On
 SSLCertificateFile    /etc/letsencrypt/live/linuxtechwhiz.info/fullchain.pem
 SSLCertificateKeyFile  /etc/letsencrypt/live/linuxtechwhiz.info/privkey.pem
</VirtualHost>

รีสตาร์ท Apache อีกครั้ง

sudo systemctl restart httpd

ขั้นตอนที่ 4: ตรวจสอบใบรับรอง Let's Encrypt SSL

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

หากต้องการดูรายละเอียดเพิ่มเติม คลิกสัญลักษณ์ แม่กุญแจ และคลิกตัวเลือก "ใบรับรอง" ในเมนูแบบเลื่อนลงที่ปรากฏขึ้น

รายละเอียดใบรับรองจะแสดงในหน้าต่างป๊อปอัปถัดไป

นอกจากนี้ คุณสามารถทดสอบเซิร์ฟเวอร์ของคุณได้ที่ https://www.ssllabs.com/ssltest/ และเว็บไซต์ของคุณควรได้รับเกรด 'A' ตามที่แสดง

ขั้นตอนที่ 5: ต่ออายุอัตโนมัติมาเข้ารหัสใบรับรอง SSL กันเถอะ

มาเข้ารหัสกันเถอะ ใช้ได้เพียง 90 วันเท่านั้น โดยปกติ กระบวนการต่ออายุจะดำเนินการโดยแพ็คเกจ certbot ซึ่งจะเพิ่มสคริปต์การต่ออายุลงในไดเรกทอรี /etc/cron.d สคริปต์ทำงานวันละสองครั้งและจะต่ออายุใบรับรองใดๆ โดยอัตโนมัติภายใน 30 วันหลังจากหมดอายุ

หากต้องการทดสอบกระบวนการต่ออายุอัตโนมัติ ให้ทำการทดสอบการทดลองรันด้วย certbot

sudo /usr/local/bin/certbot-auto renew --dry-run

หากไม่พบข้อผิดพลาด แสดงว่าคุณพร้อมแล้ว

สิ่งนี้นำเราไปสู่จุดสิ้นสุดของคู่มือนี้ ในคู่มือนี้ เราได้สาธิตวิธีที่คุณสามารถใช้ certbot เพื่อติดตั้งและกำหนดค่า Let’s Encrypt Certificate บนเว็บเซิร์ฟเวอร์ Apache ที่ทำงานบนระบบ CentOS 8