Env
- Ubuntu 18.04
- Apache
- Let's Encrypt Certificate by Certbot
เรื่องมีอยู่ว่า
- คือตอนนี้เราใช้ https ของ Let's Encrypt อยู่แล้วของ root domain name
- จะเพิ่ม sub domain ให้ใช้ https โดยให้ Cer ของ Let's Encrypt อีกสักตัว
- แล้วไปสร้าง Virtual Host รองรับและตั้งค่าให้ใช้ https ได้ด้วย โดยชี้ไปพาธใหม่เลยของ sub domain นี้
Step
- เพิ่ม sub domain ให้คอนฟิกสำหรับร้องขอ Let's Encrypt Cer โดย
$ sudo certbot certonly --cert-name xxx.go.th -d xxx.go.th,www.xxx.go.th,mail.xxx.go.th,api.xxx.go.th
-------------------------------------------------------------------------
How would you like to authenticate with the ACME CA? เลือก
1: Apache Web Server plugin - Beta (apache)
Did you intend to make this change?
(U)pdate cert/(C)ancel: u
-------------------------------------------------------------------------
- Update cert อันใหม่สำหรับ vhost เรา
- ซึ่งคำสั่งนี้ มี option dry-run เราจะได้ Cer ใหม่จาก Let's Encrypt เลย
$ sudo certbot renew --dry-run
- สร้าง Virtual Host สำหรับ Sub domain อันใหม่
$ sudo mkdir /var/www/api.xxx.go.th/html
$ sudo chmod -R 775 /var/www/api.xx.go.th
$ sudo nano /var/www/api.xxx.go.th/html/index.html
- เพิ่มโค้ดในไฟล์ index.html สำหรับทดสอบ
--------
Hello new domain name
--------
- คัดลองไฟล์ apache config ของ domain name ปัจจุบัน หรือ จะเอาจาก default ก้ได้เหมือนกัน
sudo cp /etc/apache2/site-available/xxx.go.th.conf /etc/apache2/site-available/api.xxx.go.th.conf
sudo cp /etc/apache2/site-available/xxx.go.th-le-ssl.conf /etc/apache2/site-available/api.xxx.go.th-le-ssl.conf
- จากนั้นแก้ไขค่าใน api.xxx.go.th.conf, api.xxx.go.th-le-ssl.conf เช่น ServerName หรือ พาธต่างๆ
- จากนั้นเปิดใช้งาน vhost โดย
$ sudo a2ensite api.xxx.go.th
$ sudo a2ensite api.xxx.go.th-le-ssl
- อย่าลืมตั้งค่า dns ให้ api.xxx.go.th ชี้ไอพีให้ถูกต้อง
- ทดสอบเข้าเว็บ http://api.xxx.go.th , https://api.xxx.go.th
Ref
- https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-18-04-quickstart
- https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-apache-in-ubuntu-18-04
- https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-18-04
- https://certbot.eff.org/docs/using.html#changing-a-certificate-s-domains