[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-th-1-1-all-https-ssl-tls-explained-all--*":3,"academy-blog-faqs-nb078x7ukmtah17-th":92,"academy-blog-translations-nb078x7ukmtah17":117},{"data":4,"page":91,"perPage":91,"totalItems":91,"totalPages":91},[5],{"alt":6,"collectionId":7,"collectionName":8,"content":9,"cover_image":10,"cover_image_l_url":11,"cover_image_m_url":12,"cover_image_path":13,"cover_image_s_url":14,"created":15,"created_by":16,"expand":17,"id":84,"keywords":85,"locale":54,"published_at":86,"scheduled_at":71,"school_blog":80,"short_description":87,"status":78,"title":88,"updated":89,"updated_by":90,"slug":81,"views":83},"ซองจดหมายปิดผนึกด้วยครั่งวางบนโต๊ะร้านกาแฟข้างแก้วกาแฟ พร้อมการ์ดสรุปว่า HTTP ข้อความเปิดอ่านได้ ส่วน HTTPS เข้ารหัสด้วย TLS","sclblg987654321","school_blog_translations","\u003Cp>ลองนึกภาพว่าคุณนั่งอยู่ในร้านกาแฟ ต่อ Wi-Fi ฟรีของร้าน แล้วล็อกอินเข้าเว็บสักเว็บด้วยอีเมลกับรหัสผ่าน โต๊ะข้างๆ มีคนเปิดโน้ตบุ๊กต่อ Wi-Fi วงเดียวกันอยู่ ถ้าเว็บนั้นเป็น HTTP ธรรมดา สิ่งที่คุณกดส่งจะวิ่งผ่านเครือข่ายเป็นข้อความเปิดอ่านได้ คนที่ดักดูเครือข่ายเป็นอาจเห็นรหัสผ่านของคุณทั้งตัว แต่ถ้าเว็บนั้นเป็น HTTPS สิ่งที่เขาเห็นจะเหลือแค่ว่าคุณกำลังคุยกับเว็บไหน ส่วนเนื้อหาข้างในกลายเป็นข้อมูลที่ถูกเข้ารหัสจนอ่านไม่ออก\u003C\u002Fp>\u003Cp>สั้นๆ: HTTPS คือ HTTP ที่ส่งผ่านการเชื่อมต่อแบบ TLS ซึ่งเข้ารหัสข้อมูล ป้องกันไม่ให้ข้อมูลถูกแก้ระหว่างทาง และยืนยันว่าเซิร์ฟเวอร์ที่คุณคุยด้วยเป็นเจ้าของโดเมนนั้นจริง ส่วน SSL คือชื่อของโปรโตคอลรุ่นก่อน TLS ที่เลิกใช้ไปแล้ว\u003C\u002Fp>\u003Cp>วันนี้ Superdev Academy จะพาไปดูว่า HTTPS ทำงานอย่างไร SSL กับ TLS ต่างกันตรงไหน แล้วลองเปิดดูใบรับรองของเว็บจริงด้วยคำสั่งที่คุณพิมพ์ตามได้ในเครื่องตัวเอง\u003C\u002Fp>\u003Ch2>HTTPS คืออะไร ย่อมาจากคำว่าอะไร\u003C\u002Fh2>\u003Cp>HTTPS ย่อมาจาก HyperText Transfer Protocol Secure ตามคำอธิบายของ MDN ตัว S ที่เพิ่มเข้ามาคือคำว่า Secure ส่วน HTTP ข้างหน้าก็คือโปรโตคอลเดิมที่เบราว์เซอร์ใช้ขอหน้าเว็บจากเซิร์ฟเวอร์ (Request) แล้วรับคำตอบกลับมา (Response)\u003C\u002Fp>\u003Cp>หลายคนเข้าใจว่า HTTPS เป็นโปรโตคอลใหม่อีกตัว จริงๆ แล้วไม่ใช่ มาตรฐาน HTTP ฉบับปัจจุบันอย่าง \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.rfc-editor.org\u002Frfc\u002Frfc9110.html#section-4.2.2\">RFC 9110 หัวข้อ 4.2.2\u003C\u002Fa> นิยาม scheme \"https\" ว่าเป็นการคุย HTTP บนการเชื่อมต่อ TLS ที่ถูก \"secured\" แล้ว คือเซิร์ฟเวอร์ผ่านการยืนยันตัวตน และข้อมูลได้รับการป้องกันทั้งเรื่องความลับและความถูกต้อง คำสั่ง GET, Status Code อย่าง 200 หรือ 404 และ Header ต่างๆ ยังหน้าตาเหมือนเดิมทุกอย่าง แค่ทั้งหมดถูกใส่ซองที่ TLS ปิดผนึกไว้ให้\u003C\u002Fp>\u003Cp>อีกจุดที่ RFC 9110 ระบุไว้คือ Port (ช่องทางเชื่อมต่อของเครื่องปลายทาง) ถ้า URL ไม่ได้บอก Port มา HTTPS จะใช้ TCP Port 443 เป็นค่าเริ่มต้น ขณะที่ HTTP ธรรมดาใช้ Port 80\u003C\u002Fp>\u003Ch2>HTTP กับ HTTPS ต่างกันอย่างไร\u003C\u002Fh2>\u003Cp>ย้อนกลับไปที่โต๊ะในร้านกาแฟ ความต่างที่จับต้องได้ที่สุดคือ คนที่อยู่กลางทางมองเห็นอะไรบ้าง\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cp>\u003Cstrong>HTTP:\u003C\u002Fstrong> ข้อความเปิดอ่านได้ ทั้ง URL เต็ม, Cookie, ข้อมูลในฟอร์มรวมถึงรหัสผ่าน และคนกลางทางยังแก้เนื้อหาก่อนส่งต่อได้โดยที่ทั้งสองฝั่งไม่รู้ตัว\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Cstrong>HTTPS:\u003C\u002Fstrong> เข้ารหัสด้วย TLS คนกลางทางยังเห็นว่าคุณเชื่อมต่อไปที่ IP ไหน และในหลายกรณียังเห็นชื่อโดเมน แต่ไม่เห็น path ของหน้า, Cookie หรือข้อมูลที่คุณกรอก ถ้ามีใครแอบแก้ข้อมูลระหว่างทาง ปลายทางก็ตรวจจับได้\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>ทำไมชื่อโดเมนยังหลุดออกไปได้? ส่วนหนึ่งเพราะก่อนเริ่มเข้ารหัส เบราว์เซอร์ต้องบอกเซิร์ฟเวอร์ก่อนว่าอยากคุยกับเว็บไหน ข้อมูลนี้เรียกว่า SNI (Server Name Indication) อีกส่วนคือการถาม DNS เพื่อแปลงชื่อเว็บเป็น IP ซึ่งเราอธิบายไว้ใน \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdevacademy.com\u002Fblogs\u002Fwhat-is-dns-how-it-works\">DNS คืออะไร ทำงานอย่างไร\u003C\u002Fa> เรื่องนี้ไม่ได้ทำให้ HTTPS ไร้ประโยชน์ แค่ควรรู้ว่ามันปกป้อง \"เนื้อหา\" แต่ไม่ได้ซ่อน \"ว่าคุณไปเว็บไหน\"\u003C\u002Fp>\u003Ch2>TLS คืออะไร ให้อะไรกับการเชื่อมต่อบ้าง\u003C\u002Fh2>\u003Cp>TLS ย่อมาจาก Transport Layer Security เป็นโปรโตคอลที่ทำงานอยู่ใต้ HTTP อีกชั้นหนึ่ง เอกสารมาตรฐานของ TLS 1.3 (\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.rfc-editor.org\u002Frfc\u002Frfc8446.html\">RFC 8446\u003C\u002Fa> ออกเมื่อสิงหาคม 2018) เขียนเป้าหมายไว้ว่าเพื่อกันการดักฟัง การแก้ไขข้อมูล และการปลอมข้อความ แล้วแยกออกมาเป็นคุณสมบัติ 3 ข้อ\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cp>\u003Cstrong>Confidentiality:\u003C\u002Fstrong> หลังเชื่อมต่อเสร็จ ข้อมูลที่ส่งจะมองเห็นได้เฉพาะสองปลายทางเท่านั้น\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Cstrong>Integrity:\u003C\u002Fstrong> ถ้ามีใครแก้ข้อมูลระหว่างทาง ปลายทางจะตรวจเจอ\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Cstrong>Authentication:\u003C\u002Fstrong> ฝั่งเซิร์ฟเวอร์ถูกยืนยันตัวตนเสมอ ส่วนฝั่งผู้ใช้จะยืนยันหรือไม่ก็ได้\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>ข้อ 3 คือจุดที่ Certificate (ใบรับรองดิจิทัล) เข้ามาเกี่ยว RFC 9110 อธิบายว่าเบราว์เซอร์จะถือว่ากำลังคุยกับเว็บที่ถูกต้อง ก็ต่อเมื่อเซิร์ฟเวอร์พิสูจน์ได้ว่าถือ Private Key ที่คู่กับ Certificate ซึ่งเบราว์เซอร์ไว้ใจสำหรับโดเมนนั้น พูดง่ายๆ คือ Certificate เป็นเหมือนบัตรประชาชนของเว็บ มีหน่วยงานกลางที่เรียกว่า Certificate Authority (CA) เซ็นรับรองให้ และเครื่องของคุณมีรายชื่อ CA ที่ไว้ใจติดมาอยู่แล้ว\u003C\u002Fp>\u003Cp>ถ้าไม่มีข้อ 3 การเข้ารหัสแทบไม่มีความหมาย เพราะคนกลางทางอาจทำตัวเป็นเซิร์ฟเวอร์ปลอม แล้วเข้ารหัสคุยกับคุณอย่างดี ข้อมูลก็ยังไปถึงมือเขาอยู่ดี\u003C\u002Fp>\u003Ch2>SSL กับ TLS คืออะไร ต่างกันอย่างไร\u003C\u002Fh2>\u003Cp>ตอบแบบตรงๆ ไม่อ้อม: TLS คือรุ่นต่อจาก SSL (Secure Sockets Layer) ทั้งคู่ทำหน้าที่เดียวกัน แต่ SSL ถูกประกาศเลิกใช้ไปหมดแล้ว ไทม์ไลน์จากเอกสารของ IETF เอง\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cp>\u003Cstrong>SSL 3.0:\u003C\u002Fstrong> ถูกแทนที่ด้วย TLS 1.0 ตั้งแต่ปี 1999 และ RFC 7568 (มิถุนายน 2015) ประกาศชัดว่า SSLv3 ต้องไม่ถูกใช้อีก (MUST NOT be used)\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Cstrong>TLS 1.0 และ 1.1:\u003C\u002Fstrong> RFC 8996 (มีนาคม 2021) ประกาศเลิกใช้ทั้งสองเวอร์ชันด้วยถ้อยคำแบบเดียวกัน\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Cstrong>TLS 1.2 และ 1.3:\u003C\u002Fstrong> สองเวอร์ชันที่ยังใช้งานอยู่ โดย TLS 1.3 เป็นเวอร์ชันล่าสุดตาม RFC 8446\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Ch3>แล้วทำไมทุกคนยังเรียกว่า SSL Certificate\u003C\u002Fh3>\u003Cp>เพราะชื่อติดปากมาตั้งแต่ยุคที่ SSL ยังเป็นมาตรฐานหลัก และเครื่องมือหลายตัวก็ยังพิมพ์คำว่า SSL ออกมา แม้แต่ curl ที่เราจะลองใช้ในหัวข้อถัดไปก็ยังขึ้นว่า \"SSL connection using TLSv1.3\" ทั้งที่ของที่วิ่งอยู่จริงคือ TLS 1.3 ใบรับรองที่ขายหรือแจกในชื่อ SSL Certificate คือใบเดียวกับที่ TLS ใช้ เวลาเห็นคำว่า SSL Certificate อ่านในใจว่า TLS Certificate ได้เลย\u003C\u002Fp>\u003Ch2>ลองเปิดดู Certificate ของเว็บจริงด้วยตัวเอง\u003C\u002Fh2>\u003Cp>แทนที่จะให้เชื่อตามที่เล่า เราลองเปิดดูใบรับรองของ www.superdevacademy.com เองด้วย OpenSSL 3.6.3 บน macOS เมื่อวันที่ 1 ตุลาคม 2026 คำสั่งนี้เชื่อมต่อไปที่ Port 443 แล้วพิมพ์เฉพาะส่วนสำคัญของใบรับรองออกมา\u003C\u002Fp>\u003Cpre>\u003Ccode>$ openssl s_client -connect www.superdevacademy.com:443 -servername www.superdevacademy.com &lt;\u002Fdev\u002Fnull | openssl x509 -noout -subject -issuer -dates\nsubject=CN=www.superdevacademy.com\nissuer=C=US, O=Google Trust Services, CN=WE1\nnotBefore=Aug 21 08:04:58 2026 GMT\nnotAfter=Nov 19 09:04:55 2026 GMT\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>อ่านทีละบรรทัด\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cp>\u003Cstrong>subject:\u003C\u002Fstrong> ใบนี้ออกให้ชื่อ www.superdevacademy.com ตรงกับโดเมนที่เราเชื่อมต่อ\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Cstrong>issuer:\u003C\u002Fstrong> CA ที่เซ็นรับรองคือ Google Trust Services\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Cstrong>notBefore \u002F notAfter:\u003C\u002Fstrong> ใช้ได้ตั้งแต่ 21 สิงหาคม ถึง 19 พฤศจิกายน 2026 นับแล้วอายุ 90 วัน\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>flag \u003Ccode>-servername\u003C\u002Fcode> ในคำสั่งคือการส่งชื่อโดเมน (SNI) ไปบอกเซิร์ฟเวอร์ตั้งแต่ต้น ซึ่งก็คือเหตุผลเดียวกับที่คนกลางทางยังเห็นชื่อโดเมนได้\u003C\u002Fp>\u003Cp>ถ้าอยากเห็นขั้นตอนการเชื่อมต่อ ใช้ curl แบบ verbose ได้ ด้านล่างคือผลจาก curl 8.4.0 วันเดียวกัน ตัดมาเฉพาะบรรทัดที่เกี่ยว\u003C\u002Fp>\u003Cpre>\u003Ccode>$ curl -vI https:\u002F\u002Fwww.superdevacademy.com\u002F\n* SSL connection using TLSv1.3 \u002F AEAD-CHACHA20-POLY1305-SHA256\n*  subject: CN=www.superdevacademy.com\n*  subjectAltName: host \"www.superdevacademy.com\" matched cert's \"www.superdevacademy.com\"\n*  issuer: C=US; O=Google Trust Services; CN=WE1\n*  SSL certificate verify ok.\n&lt; HTTP\u002F2 200\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>บรรทัด \u003Ccode>matched cert's\u003C\u002Fcode> คือ curl เช็คแล้วว่าชื่อในใบรับรองตรงกับโดเมน ส่วน \u003Ccode>SSL certificate verify ok\u003C\u002Fcode> คือเช็คแล้วว่า CA ที่เซ็นอยู่ในรายชื่อที่เครื่องไว้ใจ ถ้าข้อใดข้อหนึ่งไม่ผ่าน เบราว์เซอร์จะขึ้นหน้าเตือนแทนที่จะเปิดเว็บให้\u003C\u002Fp>\u003Ch2>แม่กุญแจบนเบราว์เซอร์ ไม่ได้แปลว่าเว็บน่าเชื่อถือ\u003C\u002Fh2>\u003Cp>นี่คือความเข้าใจผิดที่แพงที่สุดในเรื่องนี้ แม่กุญแจหรือ https:\u002F\u002F บนแถบที่อยู่บอกได้แค่สองอย่าง คือการเชื่อมต่อถูกเข้ารหัส และเซิร์ฟเวอร์ปลายทางถือใบรับรองที่ใช้ได้จริงของโดเมนบนแถบที่อยู่นั้น มันไม่ได้บอกว่าเจ้าของโดเมนเป็นคนดี\u003C\u002Fp>\u003Cp>เว็บหลอกลวงก็ขอใบรับรองได้เหมือนเว็บอื่น Let's Encrypt อธิบายขั้นตอนของตัวเองว่าก่อนออกใบรับรอง ผู้ขอต้องพิสูจน์ว่าควบคุมโดเมนนั้นได้ ด้วยการตั้ง DNS record หรือวางไฟล์ไว้บนเว็บตามที่กำหนด สิ่งที่ถูกตรวจคือ \"คุมโดเมนได้ไหม\" ไม่ใช่ \"เป็นธุรกิจที่สุจริตไหม\" ถ้าโดเมนบนแถบที่อยู่คือ paypa1-secure-login.example ที่มีแม่กุญแจครบ การเข้ารหัสก็แค่ช่วยให้รหัสผ่านของคุณเดินทางไปถึงมิจฉาชีพอย่างปลอดภัย\u003C\u002Fp>\u003Cp>วิธีป้องกันจึงไม่ใช่การดูแม่กุญแจ แต่คือการอ่านชื่อโดเมนให้ครบทุกตัวอักษรก่อนกรอกรหัสผ่าน และเข้าเว็บสำคัญจาก bookmark หรือพิมพ์เองแทนการกดลิงก์ในข้อความ ส่วนถ้าคุณเป็นคนเขียนเว็บ HTTPS เป็นแค่ชั้นแรกของความปลอดภัย เรื่องที่ต้องทำต่อในโค้ดเราสรุปไว้ใน \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdevacademy.com\u002Fblogs\u002Fsecure-coding-for-beginners\">เทคนิค Secure Coding ที่มือใหม่ต้องรู้\u003C\u002Fa>\u003C\u002Fp>\u003Ch2>Certificate ได้มาจากไหน ต้องเสียเงินไหม\u003C\u002Fh2>\u003Cp>ไม่จำเป็นต้องเสียเงิน \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fletsencrypt.org\u002Fdocs\u002Ffaq\u002F\">Let's Encrypt\u003C\u002Fa> เป็น CA ไม่แสวงกำไรที่ดำเนินการโดย Internet Security Research Group (ISRG) และระบุใน FAQ ว่าไม่เก็บค่าธรรมเนียมใบรับรอง ใบรับรองมาตรฐานของ Let's Encrypt มีอายุ 90 วัน และมีตัวเลือกใบรับรองอายุสั้นเพียง 6 วันให้คนที่เลือกใช้ด้วย\u003C\u002Fp>\u003Cp>อายุสั้นแบบนี้ไม่ได้มีแค่ที่ Let's Encrypt ใบรับรองของ superdevacademy.com ที่เราเพิ่งเปิดดูก็อายุ 90 วันเหมือนกัน และ CA\u002FBrowser Forum ซึ่งเป็นที่ประชุมของ CA กับผู้ทำเบราว์เซอร์ ลงมติรับ Ballot SC-081v3 ในปี 2025 ให้ลดอายุสูงสุดของใบรับรอง TLS ลงเป็นขั้นๆ เริ่มมีนาคม 2026 จาก 398 วัน ไปจนเหลือ 47 วันในมีนาคม 2029\u003C\u002Fp>\u003Cp>ผลในทางปฏิบัติคือ การต่ออายุด้วยมือยิ่งไม่เหมาะ ควรให้ระบบต่ออายุอัตโนมัติ ถ้าอยากเห็นการตั้งค่าแบบใช้งานจริงกับ Certbot และ cert-manager เราเขียนไว้แล้วใน \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdevacademy.com\u002Fblogs\u002Fep-125-tls-wss-certificate-management-for-websocket\">EP.125 TLS \u002F WSS และ Certificate Management สำหรับ WebSocket\u003C\u002Fa>\u003C\u002Fp>\u003Ch2>ทำเว็บให้เป็น HTTPS ให้ครบ: Redirect และ Mixed Content\u003C\u002Fh2>\u003Ch3>Redirect จาก HTTP ไป HTTPS\u003C\u002Fh3>\u003Cp>มีใบรับรองแล้วยังไม่จบ ถ้ามีคนพิมพ์ http:\u002F\u002F เข้ามา เว็บควรพาไป https:\u002F\u002F ให้อัตโนมัติ ลองเช็คเว็บของเราเองในวันเดียวกัน (ตัดมาเฉพาะบรรทัดที่เกี่ยว)\u003C\u002Fp>\u003Cpre>\u003Ccode>$ curl -sI http:\u002F\u002Fwww.superdevacademy.com\u002F\nHTTP\u002F1.1 301 Moved Permanently\nLocation: https:\u002F\u002Fwww.superdevacademy.com\u002F\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>301 Moved Permanently คือ Status Code ที่บอกเบราว์เซอร์ว่าหน้านี้ย้ายไปที่ใหม่ถาวร แล้ว Location บอกว่าที่ใหม่คือ https:\u002F\u002F ถ้าอยากอ่านรหัสตัวอื่นต่อ ดูได้ใน \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdevacademy.com\u002Fblogs\u002Fhttp-status-codes-explained\">HTTP Status Code คืออะไร มีอะไรบ้าง\u003C\u002Fa>\u003C\u002Fp>\u003Ch3>Mixed Content คืออะไร\u003C\u002Fh3>\u003Cp>ตามคำอธิบายของ \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FSecurity\u002FMixed_content\">MDN\u003C\u002Fa> Mixed Content คือหน้าเว็บที่โหลดผ่าน HTTPS แต่ดึงไฟล์ประกอบบางตัวผ่าน HTTP เช่น รูปหรือสคริปต์ที่ลิงก์ด้วย http:\u002F\u002F ไฟล์พวกนั้นถูกอ่านหรือแก้ระหว่างทางได้ ทั้งหน้าจึงไม่ได้ปลอดภัยเท่าที่แม่กุญแจบอก MDN แบ่งไว้สองกลุ่ม\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cp>\u003Cstrong>Upgradable:\u003C\u002Fstrong> รูป เสียง และวิดีโอ เบราว์เซอร์จะเปลี่ยนคำขอเป็น HTTPS ให้เองแล้วขึ้นคำเตือนใน Console\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Cstrong>Blockable:\u003C\u002Fstrong> สคริปต์ ไฟล์ CSS, iframe, คำขอจาก fetch() และฟอนต์ เบราว์เซอร์จะบล็อกไม่ให้โหลดเลย\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>อาการที่พบได้บ่อยหลังย้ายเว็บขึ้น HTTPS คือหน้าตาเพี้ยนหรือปุ่มกดไม่ได้ สาเหตุมักเป็นไฟล์ CSS หรือ JavaScript ที่ยังลิงก์ด้วย http:\u002F\u002F อยู่ วิธีไล่หาคือเปิด DevTools แท็บ Console ดูว่าไฟล์ไหนถูกบล็อก แล้วแก้ลิงก์เป็น https:\u002F\u002F ทีละจุด\u003C\u002Fp>\u003Cdiv data-type=\"horizontalRule\">\u003Chr>\u003C\u002Fdiv>\u003Ch2>สรุป: HTTPS คืออะไร และสำคัญอย่างไรต่อการใช้งานเว็บไซต์\u003C\u002Fh2>\u003Cp>HTTPS คือ HTTP ที่วิ่งบน TLS ไม่ใช่โปรโตคอลใหม่ ความสำคัญของมันคือสามเรื่องที่ TLS ให้มา ข้อมูลอย่างรหัสผ่านและ Cookie ไม่ถูกอ่านกลางทางแม้อยู่บน Wi-Fi สาธารณะ เนื้อหาไม่ถูกแก้โดยที่ไม่มีใครรู้ และคุณได้คุยกับเซิร์ฟเวอร์ของโดเมนนั้นจริง ส่วน SSL เป็นชื่อรุ่นเก่าที่เลิกใช้แล้ว เหลืออยู่แค่ในคำว่า SSL Certificate และแม่กุญแจก็บอกได้แค่ว่าการเชื่อมต่อปลอดภัย ไม่ได้รับรองว่าเจ้าของเว็บน่าไว้ใจ\u003C\u002Fp>\u003Cp>ลองเปิด Terminal แล้วรันคำสั่ง openssl ข้างบนกับเว็บที่คุณใช้บ่อยสักเว็บ ดูว่าใครเป็น issuer ใบรับรองหมดอายุวันไหน และ http:\u002F\u002F ของเว็บนั้น redirect ไป https:\u002F\u002F หรือเปล่า ห้านาทีที่ได้ลงมือดูของจริงจะทำให้เรื่องนี้ไม่ใช่แค่คำศัพท์อีกต่อไป\u003C\u002Fp>\u003Cp>ติดตามบทความและเทคนิคสำหรับคนเริ่มต้นสายโปรแกรมเมอร์ได้ที่ช่องทางของเรา\u003C\u002Fp>\u003Cp>Facebook: \u003Cstrong>Superdev Academy Thailand\u003C\u002Fstrong> (\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.facebook.com\u002Fsuperdev.academy.th\">https:\u002F\u002Fwww.facebook.com\u002Fsuperdev.academy.th\u003C\u002Fa>)\u003C\u002Fp>\u003Cp>YouTube: \u003Cstrong>Superdev Academy Channel\u003C\u002Fstrong> (\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.youtube.com\u002F@SuperdevAcademy\">https:\u002F\u002Fwww.youtube.com\u002F@SuperdevAcademy\u003C\u002Fa>)\u003C\u002Fp>\u003Cp>Instagram: \u003Cstrong>@superdevacademy\u003C\u002Fstrong> (\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.instagram.com\u002Fsuperdevacademy\u002F\">https:\u002F\u002Fwww.instagram.com\u002Fsuperdevacademy\u002F\u003C\u002Fa>)\u003C\u002Fp>\u003Cp>TikTok: \u003Cstrong>@superdevacademy\u003C\u002Fstrong> (\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.tiktok.com\u002F@superdevacademy?lang=th-TH\">https:\u002F\u002Fwww.tiktok.com\u002F@superdevacademy?lang=th-TH\u003C\u002Fa>)\u003C\u002Fp>","cover_cover_8qam3qobhh.webp","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fvrwxzm5b6ng1f3j\u002Fl\u002Fcover_cover_8qam3qobhh.webp","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fvrwxzm5b6ng1f3j\u002Fm\u002Fcover_cover_8qam3qobhh.webp","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fvrwxzm5b6ng1f3j\u002Fcover_cover_8qam3qobhh.webp","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fvrwxzm5b6ng1f3j\u002Fs\u002Fcover_cover_8qam3qobhh.webp","2026-10-01 06:32:48.066Z","wfztm6bp9384v3u",{"keywords":18,"locale":48,"school_blog":58},[19,25,29,33,37,41,45],{"collectionId":20,"collectionName":21,"created":22,"created_by":16,"id":23,"name":24,"updated":22,"updated_by":16},"sclkey987654321","school_keywords","2026-10-01 06:32:48.057Z","816ay7phbqodnog","https คืออะไร",{"collectionId":20,"collectionName":21,"created":26,"created_by":16,"id":27,"name":28,"updated":26,"updated_by":16},"2026-10-01 06:32:48.058Z","2l0b6rli4s7wgfu","ssl กับ tls ต่างกันอย่างไร",{"collectionId":20,"collectionName":21,"created":30,"created_by":16,"id":31,"name":32,"updated":30,"updated_by":16},"2026-10-01 06:32:48.059Z","u8cvzkygm2xu47k","http กับ https",{"collectionId":20,"collectionName":21,"created":34,"created_by":16,"id":35,"name":36,"updated":34,"updated_by":16},"2026-10-01 06:32:48.060Z","4f3bwf5fm18m12p","tls คืออะไร",{"collectionId":20,"collectionName":21,"created":38,"created_by":16,"id":39,"name":40,"updated":38,"updated_by":16},"2026-10-01 06:32:48.061Z","wh3rdw3suu5kfsp","ssl certificate",{"collectionId":20,"collectionName":21,"created":42,"created_by":16,"id":43,"name":44,"updated":42,"updated_by":16},"2026-10-01 06:32:48.062Z","m0xkjndow7i2btu","mixed content",{"collectionId":20,"collectionName":21,"created":42,"created_by":16,"id":46,"name":47,"updated":42,"updated_by":16},"rj4bd2io4265in3","let's encrypt",{"code":49,"collectionId":50,"collectionName":51,"created":52,"flag":53,"id":54,"is_default":55,"label":56,"updated":57},"th","pbc_1989393366","locales","2026-01-22 10:59:55.832Z","twemoji:flag-thailand","s8wri3bt4vgg2ji",true,"Thai","2026-04-10 15:42:46.614Z",{"category":59,"collectionId":60,"collectionName":61,"created":62,"expand":63,"id":80,"slug":81,"updated":82,"views":83},"spm4l1k5bgmhmmt","pbc_2105096300","school_blogs","2026-10-01 06:32:48.063Z",{"category":64},{"blogIds":65,"collectionId":66,"collectionName":67,"created":68,"created_by":69,"id":59,"image":70,"image_alt":71,"image_path":72,"image_s_url":73,"label":74,"name":75,"priority":76,"publish_at":77,"scheduled_at":71,"status":78,"updated":79,"updated_by":69},[],"sclcatblg987654321","school_category_blogs","2026-03-04 08:31:18.590Z","76qprkevbgfdps8","50hyjr6os45_ayazwr5gq7_tqzz9l5y5w.webp","","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fspm4l1k5bgmhmmt\u002F50hyjr6os45_ayazwr5gq7_tqzz9l5y5w.webp","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fspm4l1k5bgmhmmt\u002Fs\u002F50hyjr6os45_ayazwr5gq7_tqzz9l5y5w.webp",{"en":75,"th":75},"Knowledge",0,"2026-03-18 02:25:41.222Z","published","2026-08-18 14:49:11.737Z","nb078x7ukmtah17","https-ssl-tls-explained","2026-10-29 08:19:29.688Z",124,"vrwxzm5b6ng1f3j",[23,27,31,35,39,43,46],"2026-10-29 04:41:15.713Z","HTTPS คืออะไร ย่อมาจากอะไร SSL กับ TLS ต่างกันอย่างไร ลองเปิดดู Certificate ของเว็บจริงด้วย openssl และ curl พร้อมเหตุผลที่แม่กุญแจไม่ได้แปลว่าเว็บน่าเชื่อถือ","HTTPS คืออะไร SSL กับ TLS ต่างกันอย่างไร ลองดู Certificate จริง","2026-10-29 04:41:15.715Z","ebkf8ra4nd55ual",1,[93,97,101,105,109,113],{"answer":94,"id":95,"question":96},"HTTPS ย่อมาจาก HyperText Transfer Protocol Secure ตัว S คือ Secure หมายถึง HTTP ที่ส่งผ่านการเชื่อมต่อ TLS ซึ่งเข้ารหัสข้อมูล ป้องกันการแก้ไขระหว่างทาง และยืนยันตัวตนของเซิร์ฟเวอร์ด้วย Certificate มาตรฐาน RFC 9110 นิยาม scheme https ไว้แบบนี้ และกำหนดให้ใช้ TCP Port 443 เป็นค่าเริ่มต้น","ngacr194biyj0dz","HTTPS ย่อมาจากอะไร ตัว S หมายถึงอะไร",{"answer":98,"id":99,"question":100},"HTTPS ปลอดภัยกว่า เพราะเข้ารหัสข้อมูลด้วย TLS ส่วน HTTP ส่งทุกอย่างเป็นข้อความเปิดอ่านได้ คนที่อยู่กลางเครือข่ายเดียวกันจึงอาจเห็น URL, Cookie และรหัสผ่านที่กรอกในฟอร์ม รวมถึงแก้เนื้อหาได้โดยไม่มีใครรู้ เว็บที่มีหน้าล็อกอินหรือรับข้อมูลส่วนตัวควรใช้ HTTPS และ redirect จาก http:\u002F\u002F ไป https:\u002F\u002F ด้วย Status Code 301","bgrdwg5w8dukm9w","HTTP กับ HTTPS อันไหนปลอดภัยกว่า",{"answer":102,"id":103,"question":104},"TLS คือรุ่นต่อจาก SSL ทำหน้าที่เดียวกัน แต่ SSL เลิกใช้แล้ว SSL 3.0 ถูกแทนที่ด้วย TLS 1.0 ตั้งแต่ปี 1999 และ RFC 7568 (2015) ห้ามใช้ SSLv3 ต่อมา RFC 8996 (2021) เลิกใช้ TLS 1.0 และ 1.1 ปัจจุบันเว็บใช้ TLS 1.2 และ TLS 1.3 คำว่า SSL Certificate ที่ยังได้ยินจึงเป็นชื่อเรียกเก่าของใบรับรองที่ใช้กับ TLS","0vn5lrkm77k8an7","SSL กับ TLS ต่างกันอย่างไร",{"answer":106,"id":107,"question":108},"ปลอดภัยในระดับเนื้อหา เพราะ TLS เข้ารหัสรหัสผ่าน, Cookie และ path ของหน้าที่เปิด คนที่ต่อ Wi-Fi วงเดียวกันจะอ่านไม่ออก แต่เขายังอาจเห็น IP และชื่อโดเมนที่คุณเชื่อมต่อผ่าน SNI และ DNS ถ้าเบราว์เซอร์ขึ้นหน้าเตือนเรื่อง Certificate ระหว่างใช้ Wi-Fi สาธารณะ อย่ากดข้ามไปกรอกข้อมูล","pvnb7ebyhdhgda4","ใช้ Wi-Fi สาธารณะ เข้าเว็บที่เป็น HTTPS ปลอดภัยไหม",{"answer":110,"id":111,"question":112},"HTTPS ใช้ TCP Port 443 เป็นค่าเริ่มต้นตามที่ RFC 9110 กำหนด ส่วน HTTP ธรรมดาใช้ Port 80 ถ้า URL ไม่ระบุ Port เบราว์เซอร์จะต่อไปที่ 443 เอง ลองเช็คได้ด้วยคำสั่ง openssl s_client -connect ชื่อโดเมน:443 ซึ่งจะแสดง Certificate และเวอร์ชัน TLS ที่เซิร์ฟเวอร์ใช้อยู่","3po4v6nt6zk4xjd","HTTPS ใช้พอร์ตอะไร",{"answer":114,"id":115,"question":116},"หมายความว่าเบราว์เซอร์ตรวจ Certificate ของเว็บนั้นไม่ผ่าน สาเหตุหลักๆ ได้แก่ ใบรับรองหมดอายุ, ชื่อในใบรับรองไม่ตรงกับโดเมน หรือใบรับรองไม่ได้ออกโดย CA ที่เครื่องไว้ใจ เช่น ใบแบบ self-signed ลองดูวันหมดอายุได้ด้วยคำสั่ง openssl x509 -noout -dates และไม่ควรกรอกรหัสผ่านบนหน้าที่ขึ้นเตือนแบบนี้","01z50pys2i7sxlp","เว็บขึ้นเตือนว่า SSL Certificate ไม่ถูกต้อง หมายความว่าอะไร",{"th":81,"en":81}]