วิธีติดตั้ง SSL ใน DirectAdmin

SSL Certificate เป็นสิ่งจำเป็นสำหรับทุกเว็บไซต์ในปัจจุบัน ไม่ว่าจะเป็นเว็บบริษัท บล็อก หรือร้านค้าออนไลน์ เพราะช่วยเข้ารหัสข้อมูลระหว่างผู้ใช้กับเซิร์ฟเวอร์ และยังเป็นสัญญาณบวกสำหรับ SEO ด้วย บทความนี้จะแนะนำวิธีติดตั้ง SSL ทั้ง Let's Encrypt ฟรีและ SSL ที่ซื้อมาใน DirectAdmin

SSL Certificates Section ใน DirectAdmin

DirectAdmin มีหน้าจัดการ SSL โดยเฉพาะที่รวมทั้งการออก Certificate ใหม่และการจัดการ Certificate ที่มีอยู่ เข้าถึงได้ดังนี้:

  1. ล็อกอิน DirectAdmin
  2. ไปที่หัวข้อ Advanced Features
  3. คลิก SSL Certificates
  4. เลือกโดเมนที่ต้องการติดตั้ง SSL (หากมีหลายโดเมน)

ติดตั้ง Let's Encrypt ฟรี

Let's Encrypt คือ Certificate Authority ที่ให้ SSL ฟรี ออก Certificate ได้ทันทีโดยไม่เสียค่าใช้จ่าย เหมาะสำหรับเว็บทั่วไปที่ต้องการ HTTPS ที่น่าเชื่อถือ

ขั้นตอนติดตั้ง Let's Encrypt ใน DirectAdmin

  1. ไปที่ SSL Certificates
  2. เลือก Tab หรือตัวเลือก Free & automatic certificate from Let's Encrypt
  3. ตรวจสอบว่าโดเมนและ www ของโดเมนแสดงในรายการ หากต้องการครอบคลุม Subdomain อื่น ๆ ด้วย ให้เพิ่มในช่อง Additional Domains
  4. คลิก Save
  5. ระบบจะส่งคำขอไปยัง Let's Encrypt และติดตั้ง Certificate ให้อัตโนมัติภายใน 1–2 นาที
  6. เมื่อสำเร็จ หน้าจะแสดง Certificate ที่ติดตั้งแล้วพร้อมวันหมดอายุ

หากเว็บโดเมนของคุณชี้ DNS มาที่เซิร์ฟเวอร์ AsiaGB แล้ว ขั้นตอนนี้จะสำเร็จทันที แต่หากยังไม่ได้ชี้ DNS หรือ DNS ยังไม่ Propagate จะพบข้อผิดพลาด ให้รอให้ DNS อัปเดตก่อน

ติดตั้ง SSL ที่ซื้อมา (Paid SSL)

หากคุณซื้อ SSL Certificate จาก CA ภายนอก (เช่น Comodo, DigiCert, GlobalSign) จะต้องติดตั้งแบบ Manual ซึ่งต้องมี 3 ส่วน ได้แก่ Certificate, Private Key และ CA Bundle

ขั้นตอนสร้าง CSR และติดตั้ง SSL ที่ซื้อมา

  1. ไปที่ SSL Certificates
  2. เลือก Create A Certificate Request (CSR)
  3. กรอกข้อมูล: Common Name (ชื่อโดเมน), Organisation, City, State, Country
  4. คลิก Save แล้ว Copy CSR ที่ได้ไปส่งให้ CA ที่ซื้อ SSL
  5. เมื่อ CA ออก Certificate ให้แล้ว กลับมาที่ DirectAdmin เลือก Paste a pre-generated certificate and key
  6. วาง Certificate ในช่อง Certificate และ Private Key ในช่อง Private Key
  7. วาง CA Bundle (Intermediate Certificate) ในช่องที่กำหนด
  8. คลิก Save

เปิด Force HTTPS ผ่าน DirectAdmin

หลังติดตั้ง SSL แล้ว ควรเปิด Force HTTPS เพื่อให้ทุก Request ที่เข้ามาผ่าน HTTP ถูก Redirect ไปยัง HTTPS โดยอัตโนมัติ ทำได้ 2 วิธี:

วิธีที่ 1: ผ่าน DirectAdmin

  1. ไปที่ SSL Certificates
  2. มองหาตัวเลือก Force SSL with https redirect
  3. ติ๊กถูกแล้วคลิก Save
หน้า SSL Certificates แสดงสถานะ SSL ของโดเมน
หน้า SSL Certificates แสดงสถานะ SSL ของโดเมน
กดปุ่ม Free & Auto SSL (วงแดง) เพื่อติดตั้ง SSL จาก Let's Encrypt
กดปุ่ม Free & Auto SSL (วงแดง) เพื่อติดตั้ง SSL จาก Let's Encrypt

วิธีที่ 2: เพิ่มใน .htaccess

เปิดไฟล์ .htaccess ใน public_html แล้วเพิ่มโค้ดนี้ที่ด้านบน:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

แก้ปัญหา Mixed Content หลังเปิด HTTPS

Mixed Content เกิดขึ้นเมื่อเว็บ HTTPS โหลด Resource บางส่วน (เช่น รูปภาพ, CSS, JavaScript) ผ่าน HTTP ทำให้เบราว์เซอร์แสดงไอคอน Lock ที่ไม่สมบูรณ์ หรือบล็อก Resource นั้น

วิธีแก้ Mixed Content:

ประเภท SSL Certificate ที่ติดตั้งได้ใน DirectAdmin

DirectAdmin รองรับ SSL Certificate หลายประเภทตั้งแต่ฟรีไปจนถึงแบบชำระเงิน โดยแต่ละประเภทเหมาะกับความต้องการที่แตกต่างกัน

Let's Encrypt — SSL ฟรี สำหรับเว็บทั่วไป

Let's Encrypt เป็น Certificate Authority ที่ได้รับการยอมรับจากเบราว์เซอร์ทุกตัว ให้ SSL Certificate แบบ DV (Domain Validated) ฟรี 100% โดยมีคุณสมบัติหลักดังนี้:

Comodo / RapidSSL — SSL แบบชำระเงิน

SSL Certificate ที่ซื้อจาก CA เชิงพาณิชย์อย่าง Comodo, RapidSSL, DigiCert หรือจาก AsiaGB มีให้เลือกหลายระดับตามความต้องการ:

SSL แบบชำระเงินมีอายุมักเป็น 1 ปี ต้องต่ออายุเองก่อนหมด ควรตั้ง Reminder ล่วงหน้า 30 วันเสมอ

การ Renew SSL Certificate อัตโนมัติกับ Let's Encrypt (AutoSSL)

หนึ่งในข้อดีที่ใหญ่ที่สุดของ Let's Encrypt บน DirectAdmin คือระบบ AutoSSL ที่จัดการต่ออายุ Certificate ให้อัตโนมัติโดยไม่ต้องทำอะไรเลย

AutoSSL ทำงานอย่างไร

DirectAdmin จะตรวจสอบวันหมดอายุของ Certificate ทุกวัน เมื่อ Certificate เหลืออายุน้อยกว่า 30 วัน ระบบจะส่งคำขอต่ออายุไปยัง Let's Encrypt โดยอัตโนมัติ กระบวนการนี้ใช้เวลาเพียงไม่กี่วินาทีและไม่ส่งผลกระทบต่อเว็บไซต์ที่กำลังให้บริการอยู่

เงื่อนไขที่ AutoSSL ต้องการเพื่อให้ Renew สำเร็จ

การแจ้งเตือนเมื่อ SSL ใกล้หมดอายุ

DirectAdmin จะส่งอีเมลแจ้งเตือนเมื่อ Certificate ใกล้หมดอายุและเมื่อการ Renew สำเร็จหรือล้มเหลว ควรตรวจสอบอีเมลของ Admin account เป็นระยะ หรือตั้ง Monitoring ภายนอกเพื่อตรวจสอบวันหมดอายุของ SSL ที่ URL ของเว็บไซต์

การแก้ปัญหา SSL Mixed Content Warning

Mixed Content Warning เป็นปัญหาที่พบบ่อยหลังจากเปิด HTTPS ครั้งแรก เกิดจากหน้าเว็บที่โหลด Resource บางส่วนผ่าน HTTP แทนที่จะเป็น HTTPS ทำให้เบราว์เซอร์แสดงไอคอน Lock ที่ไม่สมบูรณ์หรือแสดงคำเตือน

ประเภทของ Mixed Content

วิธีค้นหา Resource ที่ยังเป็น HTTP

วิธีที่ง่ายที่สุดในการหา Mixed Content คือใช้เครื่องมือในเบราว์เซอร์:

  1. เปิดหน้าเว็บที่มีปัญหาในเบราว์เซอร์ Chrome หรือ Firefox
  2. กด F12 เพื่อเปิด Developer Tools
  3. ไปที่ Tab Console — URL ที่เป็น Mixed Content จะแสดงเป็นคำเตือนสีเหลืองหรือสีแดง
  4. หรือใช้ Tab Network กรองด้วย Mixed Content เพื่อดู Request ทั้งหมดที่ยังเป็น HTTP

วิธีแก้ Mixed Content

การ Redirect HTTP ไป HTTPS ใน .htaccess สำหรับทุก URL

แม้ DirectAdmin จะมีตัวเลือก Force HTTPS ในหน้า SSL Certificates แต่การเพิ่ม Redirect Rule ใน .htaccess โดยตรงช่วยให้มีความยืดหยุ่นและควบคุมได้มากกว่า โดยเฉพาะเมื่อต้องการ Redirect เฉพาะ Path หรือเพิ่ม Custom Logic

Redirect Rule มาตรฐานสำหรับทุก URL

เปิดไฟล์ .htaccess ใน public_html แล้วเพิ่มโค้ดนี้ที่ด้านบนสุดก่อน Rule อื่นๆ ทั้งหมด:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

ความหมายของแต่ละบรรทัด

ข้อควรระวังเมื่อเพิ่ม Redirect Rule

ก่อนเพิ่ม Rule ควรตรวจสอบว่า SSL Certificate ถูกติดตั้งและ Active อยู่จริงก่อน เพราะถ้าเพิ่ม Redirect แต่ SSL ยังไม่ Active เบราว์เซอร์จะ Redirect ไป HTTPS แต่ไม่มี Certificate ทำให้เว็บไม่สามารถเข้าถึงได้เลย นอกจากนี้ถ้าเว็บมี Mixed Content อยู่ให้แก้ Mixed Content ก่อนเพิ่ม Force Redirect เพื่อหลีกเลี่ยงปัญหา Resource โหลดไม่ได้

อายุของ SSL Certificate: Let's Encrypt มีอายุ 90 วัน แต่ DirectAdmin จะ Renew ให้อัตโนมัติก่อนหมดอายุ ไม่ต้องทำเองทุกครั้ง ส่วน SSL ที่ซื้อมามักมีอายุ 1 ปี ต้องต่ออายุเองก่อนหมด ควรตั้ง Reminder ล่วงหน้า 30 วัน เพราะหาก SSL หมดอายุเว็บจะแสดงคำเตือนและผู้เข้าชมจะไม่สามารถเข้าเว็บได้ตามปกติ

Hosting พร้อม SSL Let's Encrypt ฟรี

AsiaGB Hosting รองรับ Let's Encrypt ฟรีสำหรับทุกโดเมน Renew อัตโนมัติ ไม่มีค่าใช้จ่ายเพิ่ม

ดูแพ็กเกจ Hosting