2 คะแนน โดย GN⁺ 2025-11-16 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เครื่องมือสำหรับสร้างการตั้งค่า SSL/TLS อัตโนมัติให้เหมาะกับซอฟต์แวร์เซิร์ฟเวอร์หลากหลายประเภท
  • รองรับสภาพแวดล้อมเซิร์ฟเวอร์มากกว่า 20 ประเภท เช่น Apache, nginx, HAProxy, Tomcat
  • มีโปรไฟล์การกำหนดค่า Mozilla 3 แบบ ได้แก่ Modern, Intermediate, Old ให้เลือกตามระดับความปลอดภัยและความเข้ากันได้
  • สร้างการตั้งค่าแบบปรับแต่งได้ด้วยการป้อนเวอร์ชัน OpenSSL และเวอร์ชันเซิร์ฟเวอร์ พร้อมตัวเลือกการรีไดเรกต์ HTTPS
  • เป็นเครื่องมือที่มีประโยชน์ซึ่งเชื่อมโยงกับแนวทางด้านความปลอดภัยของ Mozilla เพื่อช่วยให้ตั้งค่าเซิร์ฟเวอร์อย่างปลอดภัยได้ง่าย

ภาพรวม

  • Mozilla SSL Configuration Generator เป็นเครื่องมือบนเว็บที่ช่วยให้ผู้ดูแลเซิร์ฟเวอร์สร้างการกำหนดค่า SSL/TLS ที่ปลอดภัยได้อย่างง่ายดาย
  • สร้างสคริปต์การตั้งค่าโดยอัตโนมัติตามนโยบายความปลอดภัยของ Mozilla และค่าที่แนะนำสำหรับ TLS ให้เหมาะกับสภาพแวดล้อมของแต่ละเซิร์ฟเวอร์

ซอฟต์แวร์เซิร์ฟเวอร์ที่รองรับ

  • ที่รองรับได้แก่ Apache, AWS ALB/ELB, Caddy, Coturn, Dovecot, Exim, Go, HAProxy, Jetty, lighttpd, MySQL, nginx, Oracle HTTP, Postfix, PostgreSQL, ProFTPD, Redis, Squid, stunnel, Tomcat, Traefik เป็นต้น
  • มีเทมเพลตการตั้งค่า SSL ที่ปรับให้เหมาะกับแต่ละเซิร์ฟเวอร์

โปรไฟล์การกำหนดค่าของ Mozilla

  • Modern: รองรับ TLS 1.3 เหมาะสำหรับบริการสมัยใหม่ที่ไม่ต้องการความเข้ากันได้ย้อนหลัง
  • Intermediate: เหมาะสำหรับเซิร์ฟเวอร์ทั่วไปที่คำนึงถึงความเข้ากันได้กับไคลเอนต์หลากหลายประเภท และแนะนำสำหรับระบบส่วนใหญ่
  • Old: ใช้เฉพาะในกรณีที่จำเป็นต้องคงความเข้ากันได้กับไคลเอนต์ที่เก่ามาก

รายการตั้งค่าสภาพแวดล้อม

  • ป้อน Server Version และ OpenSSL Version เพื่อสร้างการตั้งค่าที่เหมาะกับสภาพแวดล้อมนั้น
  • รองรับฟังก์ชันรีไดเรกต์ HTTPS และต้องเปิดใช้งาน JavaScript

ข้อมูลอ้างอิงและทรัพยากร

1 ความคิดเห็น

 
GN⁺ 2025-11-16
ความคิดเห็นบน Hacker News
  • ในทำนองเดียวกัน ก็มีเครื่องมืออย่าง SecurityHeaders สำหรับสแกน security headers ของเว็บไซต์, SSL Labs Test สำหรับตรวจสอบการตั้งค่า TLS และ testssl.sh ที่ใช้สแกนเว็บไซต์จากบรรทัดคำสั่ง
    มีประโยชน์ในสภาพแวดล้อมที่ไม่สามารถเข้าถึงอินเทอร์เน็ตได้ หรือเมื่อต้องการสร้างรายงาน HTML แบบอัตโนมัติ

    • เคยต้องสแกนในเครือข่ายภายใน แต่ testssl.sh ช้าเกินไป เลยใช้สแกนเนอร์ที่ทำเองชื่อ hello_tls
      แม้จะทำ parallelization และปิดบางออปชันแล้วก็ยังใช้เวลาอย่างน้อย 20 วินาที แต่เครื่องมือตัวใหม่นี้เร็วกว่า 60~100 เท่า
      ไม่มีการวิเคราะห์ช่องโหว่ แต่เป้าหมายคือดึงการตั้งค่าออกมา
    • แต่ไม่เห็นด้วยกับเว็บไซต์ security headers
      แต่ละ header มีหน้าที่ต่างกัน และขึ้นอยู่กับวัตถุประสงค์ของเว็บไซต์ ก็มีกรณีที่ไม่ควรใช้ด้วย
      ตัวอย่างเช่น ต่อให้มี header CSP อยู่ ก็มักจะตั้งค่าแบบไม่มีความหมายในทางปฏิบัติ
  • ไม่เข้าใจว่าทำไมยังใช้คำว่า “SSL” อยู่
    รู้สึกเหมือนลืมความก้าวหน้าทางเทคโนโลยีในช่วง 10 ปีที่ผ่านมา

    • ฉันเองก็ใช้คำว่า “TLS” แต่ก็ไม่ง่าย
      ถ้าบอกลูกค้าว่าจะตั้งค่าใบรับรอง TLS ก็มีหลายคนกังวลว่า “เราต้องใช้ SSL นะ”
      สุดท้ายมันคือปัญหาเรื่องการรับรู้ ผู้ใช้ทั่วไปไม่รู้จัก TLS และบริษัทต่าง ๆ ก็ยังใช้ SSL ต่อไปเพื่อหลีกเลี่ยงความสับสน
      แม้แต่หน้า SSL ของ Cloudflare ก็ใช้ SSL ใน path แต่เนื้อหาจริงกลับเน้น TLS จึงชวนสับสน
    • SSL ถูกพัฒนาโดย Netscape ในยุค 90 แล้วต่อมาพัฒนาเป็น TLS
      เพราะ Netscape Navigator สืบทอดมาสู่ Mozilla จึงพอเข้าใจได้ว่าทำไม Mozilla ยังใช้คำว่า SSL อยู่มาก
    • เทคโนโลยีในช่วง 10 ปีที่ผ่านมาสร้างโค้ดที่ใหญ่โตและซับซ้อนออกมามากมาย
      รู้สึกว่าถ้าซอฟต์แวร์ 75% ที่มีอยู่ตอนนี้หายไป โลกอาจจะดีขึ้นด้วยซ้ำ
    • สมัยก่อนยังไม่มี SSL และตอนที่มันออกมาใหม่ ๆ มันเป็นเทคโนโลยีแปลกใหม่ราคาแพง
      หลังจากนั้นมันก็กลายเป็นชื่อเรียกรวมของ HTTP ที่เข้ารหัส และแม้ชื่อโปรโตคอลจะเปลี่ยนเป็น TLS แล้ว คนก็ยังเรียกมันว่า SSL อยู่ดี
    • ฉันเองก็ยังพูดคำว่า SSL อยู่บ่อย ๆ
  • ไม่ควรปล่อยให้การตั้งค่า cipher เป็นหน้าที่ของนักพัฒนาแอปพลิเคชันหรือผู้ดูแลระบบ
    บทความ TLS Cipher Suites บนบล็อก Go น่าอ่านมาก
    Mozilla SSL Configuration Generator ยอดเยี่ยมก็จริง แต่จริง ๆ แล้วมันเป็นเครื่องมือที่ไม่ควรจำเป็นต้องมี

    • การตั้งค่า cipher มีต้นทุนการบำรุงรักษาสูง และเมื่อเวลาผ่านไปก็ยิ่งไร้ประสิทธิภาพมากขึ้น
      ไลบรารีอย่าง OpenSSL มีcipher preset อยู่แล้ว แต่แปลกที่ตัว generator ไม่ขยายจากจุดนั้น
      ตัวอย่างเช่น การจัดชุดแบบ “HIGH:!kRSA:!kEDH:!SHA1:!CAMELLIA:!ARIA” ช่วยคงความปลอดภัยไว้พร้อมกับใช้ algorithm สมัยใหม่ได้
      การตั้งค่าแบบนี้ช่วยป้องกันปัญหาที่เผลอปิดใช้งานcipher suite ที่แข็งแกร่งอย่าง ECC key หรือ ChaCha20
      นี่จึงเป็นเหตุผลที่ทำให้บางเซิร์ฟเวอร์ไม่รองรับ EdDSA หรือ post-quantum hybrid algorithm
  • ทุกวันนี้การใส่OCSP staplingเข้าไปดูเป็นเรื่องประชดประชันอยู่เหมือนกัน
    เพราะทั้งเบราว์เซอร์และ Let's Encrypt ต่างก็เลิกใช้ OCSP ในทางปฏิบัติไปแล้ว

  • Mozilla ยังมีคู่มือการตั้งค่า SSH ด้วย
    ดูได้ที่ แนวทางความปลอดภัย OpenSSH

  • อยากให้มีการตั้งค่าแบบ turnkeyที่นักพัฒนาเซิร์ฟเวอร์เพียงแค่ระบุปีหรือระดับความปลอดภัย (secure, medium, loose) ก็พอ
    การเลือก SSL cipher ทุกวันนี้แทบเป็นระดับcargo cultจนไม่รู้จริง ๆ ว่ากำลังทำอะไรอยู่

  • เคยสงสัยว่าทำไมถึงแนะนำให้ตั้งค่า SSLHonorCipherOrder เป็น Off

    • ใน nginx ก็แนะนำให้ตั้งเป็น Off ด้วยเหตุผลเดียวกัน
      เพราะ cipher ระดับ Modern และ Intermediate ล้วนปลอดภัยทั้งหมด จึงมีประสิทธิภาพกว่าหากปล่อยให้ไคลเอนต์เลือก cipher ที่เหมาะกับฮาร์ดแวร์ของตัวเอง
      รายละเอียดมีอยู่ในคอมเมนต์บน issue และ Mozilla wiki
  • น่าเสียดายที่ตัวสร้างการตั้งค่าไม่มีตัวเลือกmTLS (mutual TLS)
    ในสถานการณ์ที่ต้องใช้ client certificate มันมีประโยชน์มาก แต่ดูเหมือนจะถูกตัดออกเพราะเป็นฟีเจอร์ที่เฉพาะทางเกินไป

    • มันเป็นเครื่องมือที่เน้นการตั้งค่าการสื่อสารเริ่มต้นของเว็บเซิร์ฟเวอร์ ดังนั้นกลไกการยืนยันตัวตนจึงอยู่นอกขอบเขต
    • การจัดการ client certificate ต้องใช้ความรู้ขั้นสูง เช่น การสร้าง CA จึงเป็นเรื่องในขอบเขตที่ค่อนข้างจำกัดจริง ๆ
  • รายการ “AWS ELB” ดูเหมือนจะหมายถึงClassic Load Balancer
    ทุกวันนี้ “AWS ALB” หมายถึง Application Load Balancer แล้ว จึงทำให้คำศัพท์ชวนสับสน

    • น่าจะเป็นการตั้งค่าที่มีมาตั้งแต่ก่อน ALB จะเปิดตัว จึงดูเหมือนไม่ค่อยได้รับการอัปเดตมากนัก
  • อยากให้มีเครื่องมือคล้ายกันสำหรับการตั้งค่า OpenSSL