Skip to main content

จัดการ TLS/SSL & Cipher บน IIS Web Server

ฉบับปรับปรุง 20/10/2026

คู่มือนี้พาไปปิด protocol และ cipher เก่าๆ ที่ไม่ปลอดภัยบน IIS ด้วยโปรแกรม IIS Crypto 4.0 ทำตามทีละขั้นได้เลย

เนื้อหาเขียนโดยอิง Windows Server 2025 แต่ Windows Server 2022 ก็ทำตามได้เหมือนกัน

อ่านก่อนเริ่ม
  • IIS Crypto ไม่ได้ตั้งค่าแค่ IIS แต่ตั้งค่าทั้งเครื่อง โปรแกรมอื่นบนเครื่องที่ต่อออกไปข้างนอก เช่น ต่อ SQL Server หรือเรียก API ภายนอก ก็จะได้รับผลด้วย
  • ลองกับเครื่องทดสอบให้ผ่านก่อน แล้วค่อยทำกับเครื่อง production
  • หลังกด Apply ต้อง restart เครื่อง ให้นัดช่วงเวลาที่ปิดระบบได้ไว้ก่อน

สิ่งที่ต้องเตรียม​

  • สิทธิ Administrator บนเครื่อง
  • โปรแกรม IIS Crypto 4.0 ขึ้นไป ดาวน์โหลดได้จาก IISCrypto Download (เป็นไฟล์ .exe ไฟล์เดียว ไม่ต้องติดตั้ง)
  • รายชื่อระบบบนเครื่องนี้ที่ต้องต่อออกไปข้างนอก จะได้ใช้ทดสอบหลังตั้งค่าเสร็จ

ขั้นตอนที่ 1: เปิดโปรแกรม​

คลิกขวาที่ไฟล์ IISCrypto.exe แล้วเลือก Run as administrator (ต้องใช้สิทธินี้เพราะโปรแกรมต้องเขียนค่าลง registry)

ขั้นตอนที่ 2: Backup ค่าเดิมไว้ก่อน​

ขั้นตอนนี้ห้ามข้าม ถ้าตั้งค่าแล้วมีปัญหา ไฟล์นี้คือทางเดียวที่จะย้อนกลับได้ง่ายๆ

  1. กดเมนู Advanced ทางซ้าย
  2. กดปุ่ม Backup Registry
  3. บันทึกไฟล์ .reg ไว้ในที่ที่หาเจอ เช่น ตั้งชื่อเป็น iiscrypto-backup-ชื่อเครื่อง-วันที่.reg

หน้าจอ Advanced ของ IIS Crypto

ขั้นตอนที่ 3: ใช้ Template Strict เป็นจุดเริ่มต้น​

กดเมนู Templates แล้วเลือก Strict จาก drop down ด้านบน โปรแกรมจะติ๊กค่าให้เกือบครบในครั้งเดียว (Strict จะปิด TLS 1.0/1.1 และเอา cipher suite ที่ไม่มี forward secrecy หรือไม่ใช่ AEAD ออกให้) จากนั้นเราจะไล่เช็กทีละหน้าในขั้นตอนที่ 4-6

หน้าจอ Templates ของ IIS Crypto

tip

ระหว่างขั้นตอนที่ 3-6 ยังไม่ต้องกด Apply ให้เช็กให้ครบทุกหน้าก่อน แล้วค่อยกด Apply ทีเดียวในขั้นตอนที่ 7

ขั้นตอนที่ 4: เช็กหน้า Schannel​

กดเมนู Schannel แล้วเช็กให้ตรงกับตารางนี้ (หรือเทียบกับรูปด้านล่าง ซึ่งเป็นค่าที่ถูกต้องแล้ว)

กลุ่มติ๊กแค่ตัวนี้ที่เหลือเอาติ๊กออกให้หมด
Server ProtocolsTLS 1.3 (แนะนำ) หรือ TLS 1.2, TLS 1.3 ถ้ายังต้องรองรับ client รุ่นเก่าMulti-Protocol Unified Hello, PCT 1.0, SSL 2.0, SSL 3.0, TLS 1.0, TLS 1.1 (และ TLS 1.2 ถ้าเลือกแบบแนะนำ)
Client ProtocolsTLS 1.2, TLS 1.3Multi-Protocol Unified Hello, PCT 1.0, SSL 2.0, SSL 3.0, TLS 1.0, TLS 1.1
CiphersAES 128/128, AES 256/256NULL, DES, RC2 ทุกตัว, RC4 ทุกตัว, Triple DES 168
HashesSHA, SHA 256, SHA 384, SHA 512MD5
Key ExchangesDiffie-Hellman, PKCS, ECDH (ติ๊กทั้ง 3 ตัว)-
แนะนำให้เปิดแค่ TLS 1.3 ที่ Server Protocols แต่ต้องทดสอบก่อน

การเปิดแค่ TLS 1.3 ปลอดภัยที่สุด แต่อุปกรณ์เก่า OS เก่า และคนที่ไม่อัปเดต browser จะเข้าเว็บไม่ได้ ต้องทดสอบทุกองค์ประกอบของระบบให้ผ่าน และเจ้าของระบบต้องยอมรับความเสี่ยงนี้ก่อน ดูรายการที่ต้องทดสอบในหัวข้อ TLS 1.3 อย่างเดียว

รูปด้านล่างเป็นค่าแบบเปิด TLS 1.2 ไว้ด้วย ถ้าเลือกแบบแนะนำ ให้เอาติ๊ก TLS 1.2 ในช่อง Server Protocols ออก

หน้าจอ Schannel ของ IIS Crypto

มี 2 ตัวที่ดูเหมือนควรเอาออก แต่ต้องติ๊กไว้

  • PKCS (ช่อง Key Exchanges) ถ้าเอาออก เว็บที่ใช้ RSA certificate (ซึ่งเป็นส่วนใหญ่) จะเข้า HTTPS ไม่ได้เลย
  • SHA (ช่อง Hashes) ปล่อยไว้ก่อน ถ้าจะเอาออกต้องทดสอบให้ดี

ขั้นตอนที่ 5: เช็กหน้า Cipher Suites​

กดเมนู Cipher Suites หน้านี้จะมีรายการยาว ให้ติ๊กไว้แค่ 7 ตัวนี้ (ถ้าเลือก Template Strict ในขั้นตอนที่ 3 แล้ว โปรแกรมจะติ๊กและเรียงให้ตามนี้อยู่แล้ว)

TLS_CHACHA20_POLY1305_SHA256
TLS_AES_256_GCM_SHA384
TLS_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

3 ตัวแรกใช้กับ TLS 1.3 ส่วน 4 ตัวที่ขึ้นต้นด้วย TLS_ECDHE_ ใช้กับ TLS 1.2 ถ้าเปิดแค่ TLS 1.3 ที่ Server Protocols ก็ติ๊ก 4 ตัวนี้ไว้ได้ เพราะเครื่องยังต้องใช้ตอนต่อออกไปหาปลายทางที่ใช้ TLS 1.2

ตัวที่เหลือในรายการให้เอาติ๊กออกทั้งหมด โดยเฉพาะตัวที่มีคำว่า CBC, RSA_WITH, NULL และ PSK เทียบกับรูปด้านล่างได้เลย ค่าในรูปถูกต้องแล้ว

หน้าจอ Cipher Suites ของ IIS Crypto

มี client รุ่นเก่าที่ต้องรองรับ?

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

ขั้นตอนที่ 6: เช็กหน้า Advanced​

กดเมนู Advanced อีกครั้ง แล้วตั้งค่าตามนี้ (ดูรูปในขั้นตอนที่ 2 ได้ ค่าในรูปถูกต้องแล้ว)

ค่าตั้งเป็นเหตุผล
DHE Minimum Key Length2048ไม่ให้ใช้ key ที่สั้นเกินไป
Only Use FIPS Algorithmsไม่ติ๊กใช้เฉพาะงานที่บังคับเรื่อง FIPS เปิดไว้อาจทำให้ .NET application บางตัวพัง
Enable HTTP/3 with QUICติ๊กแนะนำ

ขั้นตอนที่ 7: กด Apply แล้ว restart​

  1. กดปุ่ม Apply ที่มุมขวาล่าง
  2. restart เครื่อง ค่าใหม่จะยังไม่มีผลจนกว่าจะ restart (หรือติ๊กช่อง Reboot ข้างปุ่ม Apply ก่อนกด เพื่อให้เครื่อง restart เองทันที)

ขั้นตอนที่ 8: ตรวจสอบผล​

  1. เปิด IIS Crypto อีกครั้ง กดเมนู Site Scanner ใส่ url ของเว็บในช่อง Url แล้วกด Scan โปรแกรมจะเปิดหน้า Qualys SSL Labs ขึ้นมาสแกนให้ (เป็นเว็บเดียวกับที่ มอ. ใช้สแกนตอนขอเปิดให้เข้าจากอินเทอร์เน็ต)
  2. ลองเข้าเว็บด้วย browser ว่ายังเปิดได้ปกติ
  3. ลองใช้งานระบบที่ต้องต่อออกไปข้างนอก (ตามรายชื่อที่เตรียมไว้) ว่ายังทำงานได้

หน้าจอ Site Scanner ของ IIS Crypto

ถ้าตั้งค่าแล้วมีปัญหา​

  1. ดับเบิลคลิกไฟล์ .reg ที่ backup ไว้ในขั้นตอนที่ 2 แล้วกด Yes เพื่อนำค่าเดิมกลับมา
  2. restart เครื่อง

ถ้าหาไฟล์ backup ไม่เจอ ให้เปิด IIS Crypto เลือก Template Best Practices แล้วกด Apply และ restart แทน

ปัญหาที่เจอบ่อย

อาการสาเหตุที่เป็นไปได้
เว็บเข้า HTTPS ไม่ได้เลยเอา PKCS ออกในหน้า Schannel หรือไม่มี cipher suite ไหนที่ใช้กับ certificate ของเว็บได้
เว็บเข้าได้ แต่ระบบต่อ SQL Server / API ภายนอกไม่ได้ปลายทางยังใช้ TLS 1.0/1.1 อยู่ หรือ application เป็น .NET Framework รุ่นเก่าที่ฟิกซ์ TLS version ไว้ในโค้ด
client รุ่นเก่าบางเครื่องเข้าเว็บไม่ได้client ไม่รองรับ GCM ดู note ในขั้นตอนที่ 5
เปิดแค่ TLS 1.3 แล้วบางเครื่องหรือบางระบบเข้าเว็บไม่ได้client ไม่รองรับ TLS 1.3 เช่น Windows 10, browser ไม่ได้อัปเดต, ระบบอื่นที่เรียก API ดูหัวข้อ TLS 1.3 อย่างเดียว

ความรู้เพิ่มเติม​

Windows Server 2025 ต่างจากเดิมยังไง​

Windows Server 2025 (และ 2022) รองรับ TLS 1.3 มาในตัวแล้ว ส่วน TLS 1.0/1.1 นั้น Windows รุ่นใหม่ๆ เริ่มปิดเป็นค่าเริ่มต้นแล้ว แต่อย่าพึ่งค่าเริ่มต้นของ OS ให้ตั้งค่าใน IIS Crypto ให้ชัดเจนไปเลย ถ้าเห็นช่องติ๊กเป็นสีเทา แปลว่ายังไม่ได้ตั้งค่า เครื่องจะใช้ค่าเริ่มต้นของ OS แทน

เปิดแค่ TLS 1.3 อย่างเดียว​

แนะนำให้เปิดแค่ TLS 1.3 ที่ Server Protocols เพราะ TLS 1.3 ตัด cipher และกลไกเก่าที่เคยมีช่องโหว่ออกไปหมด และเป็นเวอร์ชันเดียวที่ใช้ key exchange แบบ post-quantum ได้ แต่ก่อนทำมีข้อแลกเปลี่ยนที่ต้องรู้

ความเสี่ยงที่ต้องยอมรับ: client ที่ไม่รองรับ TLS 1.3 จะเข้าเว็บไม่ได้เลย เช่น

  • Windows 10, Windows Server 2019 ลงไป และ OS เก่าอื่นๆ โดยเฉพาะโปรแกรมที่ใช้ TLS ของ Windows เช่น .NET Framework application และ PowerShell
  • browser ที่ไม่ได้อัปเดต และมือถือหรืออุปกรณ์รุ่นเก่า
  • ระบบของหน่วยงานอื่นที่เรียก API ของเรา
  • load balancer, reverse proxy, เครื่องมือ monitoring และ health check

เจ้าของระบบต้องรับทราบและยอมรับความเสี่ยงนี้ก่อนเปิดใช้งานบน production

ต้องทดสอบทุกองค์ประกอบให้ผ่านบนเครื่องทดสอบก่อน

  • เข้าเว็บด้วย browser ที่ผู้ใช้ใช้จริง ทั้งบนคอมพิวเตอร์และมือถือ
  • ระบบอื่นทุกระบบที่เรียก API หรือ web service ของเครื่องนี้
  • load balancer, reverse proxy, monitoring และ health check ที่ต่อเข้ามา
  • หน้าที่ใช้ client certificate (ถ้ามี) เพราะ TLS 1.3 ไม่มี renegotiation ถ้าตั้งให้ขอ certificate หลัง handshake อาจใช้งานไม่ได้
  • ระบบบนเครื่องนี้ที่ต่อออกไปข้างนอก (ตามรายชื่อที่เตรียมไว้)
  • สแกนด้วย Site Scanner ในขั้นตอนที่ 8 แล้วผลต้องแสดงว่ารองรับแค่ TLS 1.3
ห้ามปิด TLS 1.2 ที่ Client Protocols

Client Protocols คือ protocol ที่เครื่องนี้ใช้ตอนต่อออกไปหาเครื่องอื่น ปลายทางจำนวนมากยังใช้ได้แค่ TLS 1.2 เช่น SQL Server รุ่นเก่า, API ภายนอก, SMTP, LDAP ถ้าปิด ระบบที่ต้องต่อออกไปข้างนอกจะใช้งานไม่ได้

ถ้าทดสอบแล้วไม่ผ่าน หรือเจ้าของระบบยอมรับความเสี่ยงไม่ได้ ให้เปิด TLS 1.2 คู่กับ TLS 1.3 ตามตารางในขั้นตอนที่ 4 ซึ่งยังปลอดภัยอยู่ เพราะ cipher suite ที่เหลือในขั้นตอนที่ 5 มี forward secrecy และเป็น AEAD ทั้งหมด