รักษาความปลอดภัย 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