การเปิดใช้งาน 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 เพื่อใช้งานจริง