วิธีเปลี่ยนเส้นทาง HTTP เป็น HTTPS บน Apache
HTTP (Hyper Text Transfer Protocol) เป็นที่นิยมและเป็นโปรโตคอลพื้นฐานสำหรับการสื่อสารข้อมูลบน World Wide Web (WWW ); โดยทั่วไปจะอยู่ระหว่างเว็บเบราว์เซอร์และเซิร์ฟเวอร์ที่เก็บไฟล์เว็บ ในขณะที่ HTTPS เป็นเวอร์ชันที่ปลอดภัยของ HTTP โดยที่ 'S' ต่อท้ายหมายถึง 'Secure'
เมื่อใช้ HTTPS ข้อมูลทั้งหมดระหว่างเบราว์เซอร์ของคุณและเว็บเซิร์ฟเวอร์จะได้รับการเข้ารหัสอย่างปลอดภัย บทช่วยสอนนี้จะแสดงวิธีเปลี่ยนเส้นทาง HTTP ไปยัง HTTPS บนเซิร์ฟเวอร์ Apache HTTP ใน Linux
ก่อนที่คุณจะสามารถตั้งค่า Apache HTTP เป็น HTTPS การเปลี่ยนเส้นทางสำหรับโดเมนของคุณ ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง ใบรับรอง SSL และ mod_rewrite ถูกเปิดใช้งานใน Apache สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีตั้งค่า SSL บน Apache โปรดดูคำแนะนำต่อไปนี้
- วิธีสร้างใบรับรอง SSL และคีย์ที่ลงนามด้วยตนเองสำหรับ Apache
- วิธีการติดตั้ง Let's Encrypt SSL Certificate บน CentOS/RHEL 7
- วิธีการติดตั้ง Let's Encrypt SSL Certificate บน Debian/Ubuntu
เปลี่ยนเส้นทาง HTTP เป็น HTTPS บน Apache โดยใช้ไฟล์ .htaccess
สำหรับวิธีนี้ ตรวจสอบให้แน่ใจว่าได้เปิดใช้งาน mod_rewrite หรือไม่เช่นนั้นให้เปิดใช้งานในลักษณะนี้บนระบบ Ubuntu/Debian
sudo a2enmod rewrite [Ubuntu/Debian]
สำหรับผู้ใช้ CentOS/RHEL ตรวจสอบให้แน่ใจว่าคุณมีบรรทัดต่อไปนี้ในการสนับสนุน httpd.conf (mod_rewrite – เปิดใช้งานตามค่าเริ่มต้น)
LoadModule rewrite_module modules/mod_rewrite.so
ตอนนี้ คุณเพียงแค่ต้องแก้ไขหรือสร้างไฟล์ .htaccess ในไดเรกทอรีรากของโดเมนของคุณ และเพิ่มบรรทัดเหล่านี้เพื่อเปลี่ยนเส้นทาง http ไปยัง https
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
ขณะนี้ เมื่อผู้เยี่ยมชมพิมพ์ http://www.yourdomain.com
เซิร์ฟเวอร์จะเปลี่ยนเส้นทาง HTTP ไปยัง HTTPS https://www.yourdomain.com
โดยอัตโนมัติ
เปลี่ยนเส้นทาง HTTP เป็น HTTPS บน Apache Virtual Host
นอกจากนี้ หากต้องการบังคับให้การรับส่งข้อมูลเว็บทั้งหมดใช้ HTTPS คุณยังสามารถกำหนดค่าไฟล์โฮสต์เสมือนของคุณได้ โดยปกติ การกำหนดค่าโฮสต์เสมือนจะมีส่วนสำคัญสองส่วนหากเปิดใช้งานใบรับรอง SSL; ส่วนแรกประกอบด้วยการกำหนดค่าสำหรับพอร์ตที่ไม่ปลอดภัย 80
รายการที่สองสำหรับพอร์ตที่ปลอดภัย 443 หากต้องการเปลี่ยนเส้นทาง HTTP เป็น HTTPS สำหรับทุกหน้าในเว็บไซต์ของคุณ ขั้นแรกให้เปิดไฟล์โฮสต์เสมือนที่เหมาะสม จากนั้นแก้ไขโดยเพิ่มการกำหนดค่าด้านล่าง
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.yourdomain.com
Redirect / https://www.yourdomain.com
</VirtualHost>
<VirtualHost _default_:443>
ServerName www.yourdomain.com
DocumentRoot /usr/local/apache2/htdocs
SSLEngine On
etc...
</VirtualHost>
บันทึกและปิดไฟล์ จากนั้นรีสตาร์ทเซิร์ฟเวอร์ HTTP เช่นนี้
sudo systemctl restart apache2 [Ubuntu/Debian]
sudo systemctl restart httpd [RHEL/CentOS]
แม้ว่า
จะเป็นโซลูชันที่แนะนำมากที่สุดเนื่องจากง่ายและปลอดภัยกว่า
คุณอาจต้องการอ่านบทความที่เป็นประโยชน์เกี่ยวกับการป้องกันความปลอดภัยของเซิร์ฟเวอร์ Apache HTTP เหล่านี้:
- 25 เคล็ดลับ Apache '.htaccess' ที่มีประโยชน์เพื่อรักษาความปลอดภัยและปรับแต่งเว็บไซต์
- วิธีป้องกันรหัสผ่านไดเรกทอรีเว็บใน Apache โดยใช้ไฟล์. htaccess
- วิธีซ่อนหมายเลขเวอร์ชัน Apache และข้อมูลที่ละเอียดอ่อนอื่น ๆ
- ปกป้อง Apache จากการโจมตีแบบ Brute Force หรือ DDoS โดยใช้ Mod_Security และ Mod_evasive
นั่นคือทั้งหมด! หากต้องการแบ่งปันความคิดเห็นเกี่ยวกับคู่มือนี้ โปรดใช้แบบฟอร์มคำติชมด้านล่างนี้ และอย่าลืมเชื่อมต่อกับ linux-console.net อยู่เสมอ