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

วิธีเปลี่ยนเส้นทาง 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 โปรดดูคำแนะนำต่อไปนี้

  1. วิธีสร้างใบรับรอง SSL และคีย์ที่ลงนามด้วยตนเองสำหรับ Apache
  2. วิธีการติดตั้ง Let's Encrypt SSL Certificate บน CentOS/RHEL 7
  3. วิธีการติดตั้ง 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 เหล่านี้:

  1. 25 เคล็ดลับ Apache '.htaccess' ที่มีประโยชน์เพื่อรักษาความปลอดภัยและปรับแต่งเว็บไซต์
  2. วิธีป้องกันรหัสผ่านไดเรกทอรีเว็บใน Apache โดยใช้ไฟล์. htaccess
  3. วิธีซ่อนหมายเลขเวอร์ชัน Apache และข้อมูลที่ละเอียดอ่อนอื่น ๆ
  4. ปกป้อง Apache จากการโจมตีแบบ Brute Force หรือ DDoS โดยใช้ Mod_Security และ Mod_evasive

นั่นคือทั้งหมด! หากต้องการแบ่งปันความคิดเห็นเกี่ยวกับคู่มือนี้ โปรดใช้แบบฟอร์มคำติชมด้านล่างนี้ และอย่าลืมเชื่อมต่อกับ linux-console.net อยู่เสมอ