วิธีตั้งค่า SSL/TLS Certificate ให้กับเว็บเซิร์ฟเวอร์ - ทำให้เว็บไซต์ปลอดภัยเต็มที่

โดย วุฒิชัย ศรีวิชัย · 2 กันยายน 2569

สรุปสั้น: SSL/TLS Certificate คือกุญแจที่ทำให้เว็บไซต์ของคุณจากติดต่อข้อมูลแบบเปิดโผ เปลี่ยนมาเป็นการเข้ารหัสข้อมูล ทำให้ผู้เยี่ยมชมอย่าง "ปลอดภัย" ในบทความนี้ผมจะสอนทีละขั้นตอนว่าจะติดตั้งอย่างไรให้ถูกต้องและมีประสิทธิภาพ

ถ้ากำลังดูเว็บไซต์ใดๆ แล้วสังเกตเห็นมีเครื่องหมายกุญแจสีเขียวขึ้นมาในอยิบราร์ที่พิมพ์ URL - นั่นคือ SSL/TLS Certificate กำลังทำงานอยู่ ป้องกันให้ข้อมูลที่ส่งไปมาระหว่างเบราว์เซอร์กับเซิร์ฟเวอร์ไม่ถูกโจรกรรม

ในสมัยนี้ ไม่มีข้อขอโทษว่า "เอาแค่เว็บสำหรับอ่านข้อมูล ไม่ต้องเข้ารหัส" เพราะแม้ว่าผู้เยี่ยมชมแค่ดูข้อมูล Google ก็ยังให้ความสำคัญกับความปลอดภัยของเซิร์ฟเวอร์ HTTPS ด้วยแล้ว และการมี HTTPS ยังส่งผลต่ออันดับการค้นหาด้วย ไม่มีเหตุผลดีๆ ที่จะไม่ทำ

ขั้นที่ 1: เลือกประเภท SSL Certificate ให้เหมาะกับความต้องการ

ก่อนติดตั้ง ต้องเข้าใจก่อนว่า SSL Certificate มีหลายชนิด และไม่ใช่ว่าใหญ่ที่สุดเลยจะดีที่สุด แต่ต้องคิดให้ตรงกับสถานการณ์ของคุณ

Single Domain SSL: ใช้ได้เฉพาะโดเมนเดียว เช่น example.com เท่านั้น ถ้าคุณมี www.example.com มันจะถือว่าเป็นโดเมนคนละตัว ต้องอัปเกรดไป Wildcard ถ้าอยากครอบหลายเวอร์ชัน

Wildcard SSL: ครอบหลายโดเมนย่อย เช่น example.com, www.example.com, mail.example.com เลยทีเดียว ใช้ได้จริงถ้าคุณมีหลายเซิร์ฟิสอยู่บนโดเมนเดียว เพียงแต่ราคาแพงกว่า Single Domain นิดหน่อย

Multi-Domain SSL (SAN): ใช้ได้กับหลายโดเมนต่างๆ เช่น example.com, anothersite.com, thirdsite.com สมมติว่าคุณบริหารเว็บหลายแห่ง ใช้ certificate ตัวเดียวจัดการได้หมด

Self-Signed Certificate: ฟรี แต่เบราว์เซอร์จะขึ้นเตือน "ไม่ปลอดภัย" ใช้ได้กับเซิร์ฟเวอร์ internal หรือ staging เท่านั้น ห้ามใช้บนเว็บจริงเด็ดขาด

สำหรับเว็บธรรมชาติส่วนใหญ่ Single Domain SSL ก็พอ โดยเฉพาะที่เวิร์ดเพรสหรือระบบ CMS ทั่วไป

ขั้นที่ 2: หารือกับผู้ให้บริการโฮสติ้งว่า Certificate ตรงข้ามหรือคิดเอาเอง

ในปัจจุบันเซิร์ฟเวอร์ส่วนใหญ่มี control panel อย่าง cPanel หรือ Plesk มีเครื่องมือจัดการ SSL Certificate ในตัว หรือแม้แต่หลายที่ยังเสนอ Comodo, Let's Encrypt, GeoTrust โดยฟรีหรือมีค่าใช้ Lightweight

วิธีที่เรียบง่ายสุดคือปล่อยให้ผู้ให้บริการจัดการทั้งหมด ก็ได้ แต่ถ้าต้องการควบคุมเองให้ผ่านขั้นนี้ด้วย

ถามผู้ให้บริการว่า:

  • เซิร์ฟเวอร์ใช้ cPanel, Plesk หรือ control panel อะไร?
  • มีฟรี SSL certificate หรือเสียค่า?
  • ระยะเวลาการให้บริการและการต่ออายุเป็นอย่างไร?
  • ถ้าเราจัดหา Certificate เองได้ไหม? ต้องทำอะไรพิเศษเพิ่มไหม?

เรื่องดีของ Let's Encrypt มันฟรี ทำการต่ออายุแบบอัตโนมัติได้ ส่วนใหญ่ cPanel และ Plesk รองรับให้ใช้งานได้สำเร็จโดยไม่ต้องยังหัว

ขั้นที่ 3: เข้า Control Panel และสร้าง CSR (Certificate Signing Request)

CSR คือ "ใบขอ" ที่ยังไม่ลงนาม ส่งไปให้เจ้าออก Certificate (CA - Certificate Authority) แล้วเขาก็จะออก Certificate ให้กลับมา

สำหรับ cPanel:

  • เข้า cPanel ของคุณ ค้นหา "SSL/TLS" หรือ "Security"
  • เลือก "Manage SSL sites" หรือ "AutoSSL"
  • ระบบอาจให้คุณเลือกโดเมนหรือพอมี option "Generate" ให้กดไป
  • กรอกข้อมูล: Country, State, City, Organization, Common Name (ต้องเป็นชื่อโดเมนจริงๆ เช่น example.com)
  • กดปุ่ม "Generate CSR" ระบบจะสร้างไฟล์ private key และ CSR ให้

สำหรับ Plesk:

  • เข้า Plesk Dashboard ไป Subscriptions → จากนั้นเลือก Domain ที่ต้องการ
  • เมนู "SSL/TLS Certificates"
  • กด "Add SSL Certificate" และเลือก "Request a new certificate"
  • กรอกรายละเอียดเหมือนข้างบน กดปุ่ม "Request"

อย่าลืมว่า Common Name ต้องตรงกับชื่อโดเมนจริงเท่านั้น ถ้ามีตัวอักษรสักตัวไม่ตรง browser จะยังแจ้งเตือน "ไม่ตรงกัน"

ขั้นที่ 4: ส่ง CSR ไปให้ CA (Certificate Authority) และรอการยืนยันตัวตน

หลังจากสร้าง CSR แล้ว นำไปสูแบบฟอร์มของ CA ที่เลือก ไม่ว่าจะเป็น Let's Encrypt, Comodo หรือ DigiCert

ขั้นตอนยืนยันตัวตนมีหลายแบบ:

WHOIS Verification: ระบบตรวจสอบจากข้อมูล WHOIS ที่ลงทะเบียน ต้องให้อีเมลปลายทางตรงกับข้อมูล WHOIS จากการลงทะเบียนโดเมน

Email Verification: CA ส่งอีเมลไปให้ ที่อีเมลเจ้าของโดเมน ([email protected] เป็นต้น) ต้องเข้าไปกดลิงก์ยืนยันสิทธิ์ ขั้นตอนนี้จึงจะผ่าน

DNS Verification: ต้องเพิ่ม DNS record (ส่วนใหญ่เป็น TXT record) ตามที่ CA บอก ถ้าเซิร์ฟเวอร์ DNS ยืนยันว่ามี record นั้นจริง ก็ถือว่าคุณเป็นเจ้าของโดเมน

ประเทศไทย ใช้ Email Verification มากที่สุด เพราะง่ายและไม่ต้องเข้า DNS control panel

ขั้นที่ 5: ลงนาม Certificate ของคุณลงในเซิร์ฟเวอร์

หลังจาก CA ยืนยันตัวตนแล้ว พวกเขาจะอีเมลให้ Certificate file (ส่วนใหญ่เป็นไฟล์ .crt หรือ .cer) ส่งกลับมา

สำหรับ cPanel:

  • เข้า cPanel → SSL/TLS → "Manage SSL sites"
  • หาเลือก domain ที่ต้องการ และกดปุ่ม "Install a Different Certificate"
  • ค่อยๆ วางข้อมูล:
    • Certificate: วางข้อความทั้งหมดจากไฟล์ .crt ที่ CA ส่งให้
    • Private Key: วางข้อความจากไฟล์ private key ที่สร้างในขั้นที่ 3
    • CABundle (Intermediate Certificate): ส่วนนี้ CA อาจส่งไปด้วยหรือไม่ เอามาติดตามนี้เลยถ้ามี
  • กดปุ่ม "Install Certificate"

สำหรับ Plesk:

  • เข้า Plesk → SSL/TLS Certificates
  • เลือก certificate ที่แล้วแต่คำขอไปแล้ว
  • ดูในหมวด "Certificate" ติดตัวเลข CA ที่ส่งมาไป เมื่อเอามาลง Plesk จะแสดงสถานะสำเร็จ

ระวังนะ ไฟล์ private key ต้องเก็บเฉพาะ ห้ามแชร์ให้ใครอื่น บังคับการสิทธิเข้าถึง 600 หรือ 400 เอาไว้

ขั้นที่ 6: ตั้งค่า Redirect HTTP ไป HTTPS

เมื่อ Certificate ลงเสร็จ ยังต้องบังคับให้เว็บไซต์ใช้ HTTPS เสมอ ไม่ให้ผู้เยี่ยมชมเข้า HTTP ผิดไป

ผ่าน .htaccess (Apache):

แก้ไขไฟล์ .htaccess ในโฟลเดอร์ root ของเว็บไซต์:

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

ส่วนสำคัญ: ใช้ 301 redirect แทน 302 เพื่อให้ Search Engine เข้าใจว่า HTTP เปลี่ยนไปเป็น HTTPS ตลอดไป ไม่ใช่เวลาจำกัด

ผ่าน Control Panel (cPanel/Plesk):

บางตัวมี toggle "Automatic HTTPS Redirect" หรือ "Force HTTPS" โดยตรง เปิดใจก็เสร็จเลย ง่ายกว่า

ผ่าน WordPress (ถ้าใช้ WordPress):

ไปที่ Settings → General แล้วเปลี่ยน WordPress Address และ Site Address จาก http:// เป็น https://

ขั้นที่ 7: ทดสอบและตรวจสอบ Certificate

หลังทำเสร็จแล้ว ต้องแน่ใจว่าทุกอย่างเรียบร้อยจริง

ทดสอบด้วยตัวเอง:

  • ไปที่เว็บไซต์ของคุณ ดูเก็บว่ามีกุญแจสีเขียวขึ้นไหม
  • ลองพิมพ์ URL แบบ HTTP ดูว่า redirect ไปที่ HTTPS หรือไม่
  • ทดลองบนเบราว์เซอร์ต่างๆ (Chrome, Firefox, Safari) ว่าขึ้นเตือนสะดุดหรือไม่

ใช้เครื่องมือตรวจสอบออนไลน์:

เว็บไซต์เช่น SSL Checker ช่วยให้ดูสถานะ Certificate ว่าลงถูกทีหรือไม่ รายละเอียด Chain เป็นอย่างไร วันที่หมดอายุ ฯลฯ ก็เข้าไปดูได้เลย

ตรวจสอบผ่าน Terminal (สำหรับผู้ที่ระดับเทพ):

openssl s_client -connect example.com:443

คำสั่งนี้จะแสดงข้อมูลทั้งหมดของ Certificate ที่ลงอยู่ ตรวจดูวันหมดอายุ Subject, Issuer ว่าถูกต้องหรือไม่

ขั้นที่ 8: ตั้งการต่ออายุ Certificate อัตโนมัติ

ปัญหาใหญ่ของ SSL Certificate คือมันมีอายุ ตามกฎหมายส่วนใหญ่ 1 ปี บางตัวแค่ 90 วัน (Let's Encrypt เช่น) ถ้าลืมต่ออายุ Certificate จะหมดอายุ เบราว์เซอร์จะขึ้นเตือนแดงๆ "ไม่ปลอดภัย"

ถ้าใช้ Let's Encrypt: ส่วนใหญ่มีการต่ออายุอัตโนมัติ cPanel และ Plesk รองรับการต่อเอง แล้วไม่ต้องทำอะไร

ถ้าซื้อ Certificate จาก CA อื่น: ตั้งเตือนไว้ก่อนหมดอายุประมาณ 1 เดือน บางที่ CA อาจส่งอีเมลเตือนให้ก็ได้ แต่อย่าไว้ใจเพราะอีเมลอาจหายหรือไปปลายทาง spam

การ renew มักจะคล้ายกับการสร้างใหม่ แค่ขั้นตอน 1-7 ลำดับเดียวกัน ไม่มีสิ่งที่ซับซ้อนไปกว่านี้เลย

เคล็ดลับเพิ่มเติม: ควรคำนึงถึงอะไร

อย่าทำ Self-Signed Certificate แล้วปล่อยให้ไปเช่นว่า "ก็แค่เว็บอ่านข้อมูล ไม่มีส่วนที่เสี่ยง" นี่คือความเห็นอย่างไร้สติ Google ลดคะแนน SEO เว็บ HTTP สมบูรณ์ เศษ

ถ้าจัดหา Certificate เองโดยไม่ใช้ control panel ให้ดูแลไฟล์ private key สุดอุตส่าห์ มีการสำรองข้อมูลไว้ที่ไหน ถ้าเซิร์ฟเวอร์เสีย ถ้าเซิร์ฟเวอร์ hack ต้องอัปเดต Certificate เป็นเรื่องแรก

ลองใช้ Let's Encrypt ก่อน มันฟรี ทำการต่ออายุอัตโนมัติ และเกือบทั้ง web hosting รองรับ ถ้าไม่ทำให้ลงคุณให้ติดต่อผู้ให้บริการ ยังไงก็ต้องมี support หลังบ้าน

ตั้งค่า redirect 301 ให้ถูกต้องนะ ระบบ cache ของเบราว์เซอร์จะจดจำ redirect นี้สำหรับตลอดไป ถ้าไม่ถูกต้องแต่งแล้วอาจสร้างปัญหาหาวิธีแก้อีกรอบ

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

ลองตั้งค่า Certificate ให้เสร็จสิ้น จนกว่าเว็บไซต์จะมี HTTPS ปลอดภัยเต็มที่ ผู้เยี่ยมชมจะอบรมบวก ลูกค้าก็ไว้ใจได้มากขึ้น และ Google ก็ให้คะแนน SEO ด้วยข้อ นี่คือ win-win ทั้งตัวเอง

แสดงความคิดเห็น

ร่วมแสดงความคิดเห็นได้ที่ด้านล่าง — เราอ่านทุกความเห็น