Knowledge Base

knowledge Base

วิธีสร้าง Virtual Host ของ Apache2 Web Server และทำ HTTPS ฟรี ด้วย Let's Encrypt

วิธีสร้าง Virtual Host ของ Apache2 Web Server และทำ HTTPS ฟรี ด้วย Let's Encrypt

 

 

 

Virtual Host คืออะไร?

            Web Server เครื่องๆ หนึ่งจะใช้สำหรับเว็บไซต์ ได้หลายเว็บ เราจะเรียกวิธีการทำนี้ว่าการทำ Virtual Host 
กล่าวคือ เรียก 
            ssl1.imd.co.th จะเรียกไปที่ /ssl1/public_html

            ssl2.imd.co.th จะเรียกไปที่ /ssl2/public_html
            หรือจะทำเป็น domain มาปนก็ได้ 
            ssl1.web.com จะเรียกไปที่ /ssl1/public_html

 

HTTPS คืออะไร?

            HTTPS (Hypertext Transfer Protocol Secure) คือโปรโตคอลสำหรับเรียกใช้งานเว็บไซต์ ที่จะระบุว่าการส่งผ่านข้อมูลในเว็บไซต์นี้จะถูกเข้ารหัสเพื่อความปลอดภัย มีการตรวจสอบสิทธิ์ และความสมบูรณ์ของข้อมูล

 

SSL คืออะไร?

            SSL มีชื่อเต็มคือ Secure Socket Layer เป็นเทคโนโลยีการเข้ารหัสข้อมูลเพื่อเพิ่มความปลอดภัยในการส่งข้อมูลบนอินเทอร์เน็ต ทั้งในเว็บไซต์หรือแอปพลิเคชั่นต่างๆ ที่จะทำให้เว็บไซต์ของเราถูกดักจับข้อมูลได้ลำบากขึ้นนั่นเองครับ

            เมื่อเราเข้าเว็บไซต์ที่มีการใช้ SSL ทางเว็บไซต์ก็จะส่งกุญแจไขรหัสดอกหนึ่ง (สมมติเป็นกุญแจ A) พร้อมกับใบรับรองดิจิทัลที่เรียกว่า SSL Certificate มาให้เรา ซึ่งใบรับรองดิจิทัลนี้จะถูกรับรองโดยหน่วยงานที่มีความน่าเชื่อถือ (CA) และเว็บเบราเซอร์ของเราก็จะมีข้อมูลของหน่วยงานเหล่านี้อยู่แล้ว และเมื่อยืนยันว่าใบรับรองนี้เป็นของจริง ในส่วนหน้าของเว็บก็จะขึ้นอักษร https มา แสดงให้เห็นว่า นี่คือเว็บที่เข้ามีการเข้ารหัสข้อมูล

            แล้วเวลาที่เราส่งข้อมูลอะไรก็ตามที่มีความสำคัญ ตัวเบราเซอร์ของเราก็จะทำการสร้างกุญแจดิจิทัลขึ้นมา 2 ดอกซึ่งเหมือนกันทั้งสองดอก (เรียกเป็นกุญแจ B) แล้วเข้ารหัสกุญแจดอกนี้ด้วย กุญแจ A ที่ได้มาจากเว็บไซต์อีกทีและส่งดอกที่เข้ารหัสแล้วไปยังเซิฟเวอร์ แล้วเมื่อทางฝั่งเซิฟเวอร์ของเว็บได้รับกุญแจที่เราสร้าง เราก็สามารถส่งข้อมูลที่เข้ารหัสจากกุญแจ B ไปมากับเซิฟเวอร์ได้เลย

 

ติดตั้ง HTTPS ทำอย่างไร?

            การติดตั้งผ่านผู้ให้บริการ HTTPS ต่างๆ มีค่าใช้จ่ายค่อนข้างสูง ซึ่งการลดค่าใช้จ่ายคือติดตั้งด้วยตอนเองผ่าน Let's Encrypt ซึ่งไม่มีค่าใช้จ่าย บน Server Ubuntu

 

วิธีสร้าง Virtual Host ของ Apache2 Web Server

1. สร้าง Directory และ Sub Directory ตามที่ต้องการ

            $ sudo mkdir -p /var/www/html/ssl1/public_html/          //สำหรับเว็บ ssl1.imd.co.th

            $ sudo mkdir -p /var/www/html/ssl2/public_html/          //สำหรับเว็บ ssl2.imd.co.th

 

 

2. สร้างและแก้ไขไฟล์ index เพื่อการแสดงหน้าเว็บ

            $ nano ssl1/public_html/index.php         //สร้างและแก้ไขไฟล์ index.php ใน ssl1/public_html

            $ nano ssl2/public_html/index.php         //สร้างและแก้ไขไฟล์ index.php ใน ssl2/public_html

 

 

 

 

3. การกำหนด Directory ให้ Virtula Host

            $ nano /etc/apache2/apache2.conf        //เปิดไฟล์ apache2.conf เพื่อแก้ไข

 

 

            - เพิ่ม Virtual Host ขั้นตอนนี้ให้ใส่ชื่อเว็บของเราลงไป จากตัวอย่างใส่เป็น ssl1.imd.co.th และ ssl2.imd.co.th

<VirtualHost *:80>

        ServerName ssl1.imd.co.th

        DocumentRoot /var/www/html/ssl1/public_html

</VirtualHost>

<VirtualHost *:80>

        ServerName ssl2.imd.co.th

        DocumentRoot /var/www/html/ssl2/public_html

</VirtualHost/>

           

 

            * เพิ่มหลังจาก

#<Directory /srv/>

#       Options Indexes FollowSymLinks

#       AllowOverride None

#       Require all granted

#</Directory>

           

 

4. ทำการ restart apache ใหม่เพื่อความสมบูรณ์ในการทำงานด้วยคำสั่ง

            $ /etc/init.d/apache2 restart

 

 

 

5. ผลการทดสอบการทำ Virtual Host

 

 

 

 

 

วิธีทำ HTTPS ฟรี ด้วย Let's Encrypt

1. เริ่มด้วยการติดตั้ง Git

            $ sudo apt-get install

 

2. Download the Let's Encrypt Client

            $ sudo git clone https://github.com/letsencrypt/letsencrytp /opt/letsencrypt

 

 

3. Set up the SSL Certificate

            $ cd /opt/letsencrypt

            $ ./letsencrypt-auto --apache -d ssl1.imd.co.th

 

            - สำหรับขั้นตอนนี้ให้ใส่ชื่อเว็บของเราลงไป จากตัวอย่าง ใส่เป็น ssl1.imd.co.th

 

 

            - เมื่อติดตั้งเสร็จจะมีข้อความแจ้ง ว่าติดตั้งสำเร็จหรือไม่ และจะมีแจ้งวันหมดอายุ พร้อมวิธีการต่ออายุ

 

 

            - ในกรณีนี้เราก็ทำการ Set up the SSL Certificate อีกเว็บของเราลงไปอีกครั้ง

 

 

            - รอผลการติดตั้งเช่นเดียวกัน

 

 

 

 

            ผลการทดสอบ SSL ผ่านหน้าเว็บไซต์ เป็นรูปกุญแจด้านหน้าชื่อเว็บไซต์ เป็นการติดตั้ง HTTPS เรียบร้อย

 

 

 

4. การต่ออายุ HTTPS

            - เนื่องจาก HTTPS มีอายุ 90 วัน หลังจาก 90 วัน จะต้องมาต่ออายุใหม่ด้วยคำสั่งนี้

            $ cd /opt/letsencrypt

            $ ./letsencrypt-auto renew

            * การต่ออายุ จะต่อทั้งหมดที่อยู่บน Server ตัวเดียวกัน

 

 

 

ที่มา : https://community.letsencrypt.org/t/crontab-certificate-renewal-is-missed/39835

Jan 01, 1970