
SSL Certificate เป็นสิ่งจำเป็นสำหรับทุกเว็บไซต์ในปัจจุบัน ไม่ว่าจะเป็นเว็บบริษัท บล็อก หรือร้านค้าออนไลน์ เพราะช่วยเข้ารหัสข้อมูลระหว่างผู้ใช้กับเซิร์ฟเวอร์ และยังเป็นสัญญาณบวกสำหรับ SEO ด้วย บทความนี้จะแนะนำวิธีติดตั้ง SSL ทั้ง Let's Encrypt ฟรีและ SSL ที่ซื้อมาใน DirectAdmin
SSL Certificates Section ใน DirectAdmin
DirectAdmin มีหน้าจัดการ SSL โดยเฉพาะที่รวมทั้งการออก Certificate ใหม่และการจัดการ Certificate ที่มีอยู่ เข้าถึงได้ดังนี้:
- ล็อกอิน DirectAdmin
- ไปที่หัวข้อ Advanced Features
- คลิก SSL Certificates
- เลือกโดเมนที่ต้องการติดตั้ง SSL (หากมีหลายโดเมน)
ติดตั้ง Let's Encrypt ฟรี
Let's Encrypt คือ Certificate Authority ที่ให้ SSL ฟรี ออก Certificate ได้ทันทีโดยไม่เสียค่าใช้จ่าย เหมาะสำหรับเว็บทั่วไปที่ต้องการ HTTPS ที่น่าเชื่อถือ
ขั้นตอนติดตั้ง Let's Encrypt ใน DirectAdmin
- ไปที่ SSL Certificates
- เลือก Tab หรือตัวเลือก Free & automatic certificate from Let's Encrypt
- ตรวจสอบว่าโดเมนและ www ของโดเมนแสดงในรายการ หากต้องการครอบคลุม Subdomain อื่น ๆ ด้วย ให้เพิ่มในช่อง Additional Domains
- คลิก Save
- ระบบจะส่งคำขอไปยัง Let's Encrypt และติดตั้ง Certificate ให้อัตโนมัติภายใน 1–2 นาที
- เมื่อสำเร็จ หน้าจะแสดง 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 ที่ซื้อมา
- ไปที่ SSL Certificates
- เลือก Create A Certificate Request (CSR)
- กรอกข้อมูล: Common Name (ชื่อโดเมน), Organisation, City, State, Country
- คลิก Save แล้ว Copy CSR ที่ได้ไปส่งให้ CA ที่ซื้อ SSL
- เมื่อ CA ออก Certificate ให้แล้ว กลับมาที่ DirectAdmin เลือก Paste a pre-generated certificate and key
- วาง Certificate ในช่อง Certificate และ Private Key ในช่อง Private Key
- วาง CA Bundle (Intermediate Certificate) ในช่องที่กำหนด
- คลิก Save
เปิด Force HTTPS ผ่าน DirectAdmin
หลังติดตั้ง SSL แล้ว ควรเปิด Force HTTPS เพื่อให้ทุก Request ที่เข้ามาผ่าน HTTP ถูก Redirect ไปยัง HTTPS โดยอัตโนมัติ ทำได้ 2 วิธี:
วิธีที่ 1: ผ่าน DirectAdmin
- ไปที่ SSL Certificates
- มองหาตัวเลือก Force SSL with https redirect
- ติ๊กถูกแล้วคลิก Save
วิธีที่ 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:
- WordPress: ใช้ Plugin เช่น "Really Simple SSL" หรือ "Better Search Replace" เพื่อเปลี่ยน URL จาก http:// เป็น https:// ในฐานข้อมูลทั้งหมด
- เว็บทั่วไป: ค้นหาและแก้ไข URL ที่เริ่มต้นด้วย
http://ในไฟล์ HTML, CSS และ JavaScript ให้เป็นhttps://หรือ//(Protocol-relative) - เพิ่ม HTTP Header: ใส่
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">ใน<head>ของทุกหน้า
ประเภท SSL Certificate ที่ติดตั้งได้ใน DirectAdmin
DirectAdmin รองรับ SSL Certificate หลายประเภทตั้งแต่ฟรีไปจนถึงแบบชำระเงิน โดยแต่ละประเภทเหมาะกับความต้องการที่แตกต่างกัน
Let's Encrypt — SSL ฟรี สำหรับเว็บทั่วไป
Let's Encrypt เป็น Certificate Authority ที่ได้รับการยอมรับจากเบราว์เซอร์ทุกตัว ให้ SSL Certificate แบบ DV (Domain Validated) ฟรี 100% โดยมีคุณสมบัติหลักดังนี้:
- ฟรีไม่มีค่าใช้จ่าย ติดตั้งได้ในไม่กี่คลิกผ่าน DirectAdmin
- รองรับทั้ง Domain หลักและ www subdomain ในคราวเดียว
- มีอายุ 90 วัน แต่ DirectAdmin จัดการ Renew อัตโนมัติ
- เหมาะสำหรับเว็บบล็อก เว็บบริษัท เว็บ Portfolio และเว็บทั่วไปที่ต้องการ HTTPS
- ไม่แสดงชื่อองค์กรใน Certificate Bar ของเบราว์เซอร์ (แสดงเพียงโดเมน)
Comodo / RapidSSL — SSL แบบชำระเงิน
SSL Certificate ที่ซื้อจาก CA เชิงพาณิชย์อย่าง Comodo, RapidSSL, DigiCert หรือจาก AsiaGB มีให้เลือกหลายระดับตามความต้องการ:
- DV (Domain Validated): ตรวจสอบแค่ความเป็นเจ้าของโดเมน เหมาะสำหรับเว็บส่วนตัวและบล็อก ราคาประหยัด
- OV (Organization Validated): ตรวจสอบทั้งโดเมนและข้อมูลองค์กร เพิ่มความน่าเชื่อถือสำหรับเว็บธุรกิจ
- EV (Extended Validation): การตรวจสอบที่เข้มงวดที่สุด เหมาะสำหรับธนาคาร ร้านค้าออนไลน์ หรือเว็บที่รับข้อมูลทางการเงิน
- Wildcard SSL: ครอบคลุม Subdomain ทั้งหมด เช่น *.yourdomain.com ในใบเซอร์เดียว
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 สำเร็จ
- DNS ต้องชี้มาที่เซิร์ฟเวอร์: Let's Encrypt ตรวจสอบการเป็นเจ้าของโดเมนผ่าน HTTP Challenge ที่ Port 80 ถ้าโดเมนชี้ DNS ออกไปที่อื่นการต่ออายุจะล้มเหลว
- Port 80 ต้องไม่ถูกบล็อก: Firewall หรือ Security Rule ที่บล็อก Port 80 จะขัดขวางกระบวนการ Verification
- โฟลเดอร์ .well-known ต้องเข้าถึงได้: Let's Encrypt จะวางไฟล์ Challenge ใน
/.well-known/acme-challenge/ตรวจสอบว่า .htaccess ไม่ได้บล็อก path นี้
การแจ้งเตือนเมื่อ SSL ใกล้หมดอายุ
DirectAdmin จะส่งอีเมลแจ้งเตือนเมื่อ Certificate ใกล้หมดอายุและเมื่อการ Renew สำเร็จหรือล้มเหลว ควรตรวจสอบอีเมลของ Admin account เป็นระยะ หรือตั้ง Monitoring ภายนอกเพื่อตรวจสอบวันหมดอายุของ SSL ที่ URL ของเว็บไซต์
การแก้ปัญหา SSL Mixed Content Warning
Mixed Content Warning เป็นปัญหาที่พบบ่อยหลังจากเปิด HTTPS ครั้งแรก เกิดจากหน้าเว็บที่โหลด Resource บางส่วนผ่าน HTTP แทนที่จะเป็น HTTPS ทำให้เบราว์เซอร์แสดงไอคอน Lock ที่ไม่สมบูรณ์หรือแสดงคำเตือน
ประเภทของ Mixed Content
- Passive Mixed Content: รูปภาพหรือ Video ที่โหลดผ่าน HTTP เบราว์เซอร์จะแสดงคำเตือนแต่ยังโหลด Resource ให้ (อาจเห็น Lock icon สีส้มหรือมีสัญลักษณ์ข้อความเตือน)
- Active Mixed Content: JavaScript หรือ CSS ที่โหลดผ่าน HTTP เบราว์เซอร์จะ Block ทันทีเพราะเป็นความเสี่ยงด้านความปลอดภัยสูงกว่า
วิธีค้นหา Resource ที่ยังเป็น HTTP
วิธีที่ง่ายที่สุดในการหา Mixed Content คือใช้เครื่องมือในเบราว์เซอร์:
- เปิดหน้าเว็บที่มีปัญหาในเบราว์เซอร์ Chrome หรือ Firefox
- กด F12 เพื่อเปิด Developer Tools
- ไปที่ Tab Console — URL ที่เป็น Mixed Content จะแสดงเป็นคำเตือนสีเหลืองหรือสีแดง
- หรือใช้ Tab Network กรองด้วย Mixed Content เพื่อดู Request ทั้งหมดที่ยังเป็น HTTP
วิธีแก้ Mixed Content
- WordPress: ใช้ Plugin "Better Search Replace" เพื่อค้นหา
http://yourdomain.comและแทนที่ด้วยhttps://yourdomain.comในฐานข้อมูลทั้งหมด แล้วอัพเดต Site URL ใน Settings → General ด้วย - เว็บ HTML ทั่วไป: ค้นหาและแก้ไข URL ที่เริ่มต้นด้วย
http://ในไฟล์ HTML, CSS และ JavaScript ให้เป็นhttps://หรือ//(Protocol-relative URL) - รูปภาพจากภายนอก: ถ้า Resource มาจาก CDN หรือเว็บอื่น ตรวจสอบว่าเว็บนั้นรองรับ HTTPS หากไม่รองรับให้ย้ายมาเก็บบนเซิร์ฟเวอร์ของตัวเองแทน
- เพิ่ม CSP Header: ใส่
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">ใน<head>เพื่อให้เบราว์เซอร์อัปเกรด HTTP Request เป็น HTTPS อัตโนมัติ
การ 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]
ความหมายของแต่ละบรรทัด
RewriteEngine On— เปิด mod_rewrite สำหรับ Server นี้RewriteCond %{HTTPS} off— ตรวจสอบว่า Request ปัจจุบันเป็น HTTP (ไม่ใช่ HTTPS) ถ้าเป็น HTTPS อยู่แล้วจะไม่ Redirect เพื่อป้องกัน Redirect LoopRewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]— Redirect ทุก URL ไปยัง HTTPS version เดิมด้วย 301 Permanent Redirect
ข้อควรระวังเมื่อเพิ่ม 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