22 กุมภาพันธ์ 2025

การเปิดใช้งาน https ใน apache2 บน Ubuntu

ค่าเริ่มต้นของ HTTPS (port 443) บน Apache2 ใน Ubuntu จะ ไม่ถูกเปิดใช้งานโดยอัตโนมัติ หลังจากการติดตั้ง apache2 เว้นแต่ว่าคุณจะดำเนินการดังนี้:

1. ตรวจสอบว่า mod_ssl ถูกติดตั้งหรือไม่

Apache2 ต้องใช้โมดูล SSL (mod_ssl) เพื่อรองรับ HTTPS คุณสามารถตรวจสอบว่าโมดูลนี้ถูกติดตั้งหรือไม่โดยใช้คำสั่ง:

apachectl -M | grep ssl

หากไม่มีผลลัพธ์ แสดงว่ายังไม่มีการเปิดใช้งานโมดูล SSL

2. ติดตั้งและเปิดใช้งาน mod_ssl

หากยังไม่ได้ติดตั้ง ใช้คำสั่งต่อไปนี้:

sudo apt update
sudo apt install -y apache2 openssl
sudo a2enmod ssl

จากนั้น รีสตาร์ท Apache

sudo systemctl restart apache2

3. สร้าง Virtual Host สำหรับ HTTPS

ไฟล์การตั้งค่า Virtual Host ของ HTTPS ปกติจะอยู่ที่:

/etc/apache2/sites-available/default-ssl.conf

เปิดไฟล์และแก้ไขค่าต่าง ๆ ตามที่ต้องการ จากนั้นเปิดใช้งานด้วย:

sudo a2ensite default-ssl
sudo systemctl restart apache2

4. ตรวจสอบการฟังพอร์ต 443

ใช้คำสั่งนี้เพื่อตรวจสอบว่า Apache กำลังฟังที่พอร์ต 443 หรือไม่:

sudo netstat -tulnp | grep apache2

หรือใช้:

sudo ss -tulnp | grep 443

หากไม่มีผลลัพธ์แสดงว่า HTTPS ยังไม่เปิดใช้งาน

5. ตรวจสอบไฟล์ตั้งค่าหลักของ Apache

ไฟล์ /etc/apache2/ports.conf ควรมีบรรทัด:

Listen 443

หากไม่มี ให้เพิ่มเข้าไปแล้วรีสตาร์ท Apache:

sudo systemctl restart apache2

6. ใช้ใบรับรอง SSL (Optional)

  • หากต้องการใช้งาน HTTPS จริง ควรติดตั้ง SSL Certificate เช่น Let’s Encrypt:
sudo apt install certbot python3-certbot-apache
sudo certbot --apache

หากไม่มีใบรับรอง สามารถสร้าง Self-Signed Certificate เพื่อทดสอบ:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt

สรุป

  • ค่าเริ่มต้นของ Apache2 ไม่มีการเปิดใช้งาน HTTPS
  • ต้อง เปิดใช้งาน mod_ssl และ สร้าง Virtual Host สำหรับ HTTPS
  • ควร ติดตั้งใบรับรอง SSL เพื่อใช้งานจริง