30 คะแนน โดย xguru 2022-03-15 | 7 ความคิดเห็น | แชร์ทาง WhatsApp
  • ทำไมจึงควรใช้ HTTPS บนเครื่องโลคัล
    • ให้ใกล้เคียงกับสภาพแวดล้อมโปรดักชันมากที่สุด
    • ใช้นโยบายความปลอดภัยที่เข้มงวด - Content Security Policy(CSP)
    • ใช้งานฟีเจอร์บางอย่างของเบราว์เซอร์ เช่น Service Worker, คุกกี้แบบ Secure/Prefixed เป็นต้น
    • ใช้ชื่อโฮสต์เฉพาะแทน localhost
  • การใช้ HTTPS บนเครื่องโลคัล
    • สร้าง Self-Signed Certificate
      → เครื่องมือที่ดีที่สุดคือ OpenSSL แต่ถ้าต้องการความง่าย แค่ใช้ mkcert ก็เพียงพอ
      → ติดตั้ง local CA ด้วย mkcert -install และสร้างคีย์ด้วย mkcert localhost
    • สร้างเซิร์ฟเวอร์ HTTPS ด้วย Node.js โดยใช้คีย์ของ localhost

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

 
nicewook 2022-03-21

CFSSL เป็นอย่างไรบ้างครับ? ผมเองก็ใช้แต่ OpenSSL มาตลอดเหมือนกัน แต่เห็นว่าหนังสือที่กำลังอ่านอยู่ช่วงหลัง ๆ แนะนำ CFSSL ไว้ เลยอยากรู้ว่ามีข้อดีข้อเสียหรือความแตกต่างเมื่อเทียบกันอย่างไรบ้าง

 
ngenius 2022-03-16

https://web.dev/i18n/ko/how-to-use-local-https/ มีบทความแบบนี้ด้วยแฮะ

 
handohee 2022-03-15

ดูเหมือนว่าเวลาเทสต์การเชื่อมต่อสมาร์ตโฟนกับเซิร์ฟเวอร์โลคัลจะต้องใช้ HTTPS
แต่ในกรณีการใช้งานของผมมักเป็นเครือข่ายโลคัลที่ไม่มีอินเทอร์เน็ต
เลยไม่สามารถใช้ tunneling แบบ ngrok ได้
วิธีสร้างใบรับรองด้านบนก็ใช้ได้อยู่ แต่จัดการได้ไม่ค่อยสะดวกนัก
มีวิธีอื่นอีกไหมครับ?

 
galadbran 2022-03-18

หากเครื่องสำหรับพัฒนาเป็นระบบ Windows ให้รันพร็อกซีอย่างเช่น fiddler แล้วตั้งค่าที่อยู่พร็อกซีของ iPhone หรือ Android ให้เป็นที่อยู่สำหรับเชื่อมต่อของ fiddler ก็จะสามารถใช้การตั้งค่าอย่างไฟล์ hosts ของเครื่องพัฒนาได้
(จำเป็นต้องมีขั้นตอนติดตั้งใบรับรองรูทแบบ self-signed ของ fiddler ลงในโทรศัพท์)
คิดว่าน่าจะทำได้ด้วยเครื่องมืออย่าง mitmproxy เช่นกัน

 
ffdd270 2022-03-15

https://th.news.hada.io/topic?id=6151

ผมเคยใช้โซลูชันนี้ครับ มีความสุขมากเลย...

 
handohee 2022-03-15

ผมเคยมีปัญหาว่าใช้ ngrok ไม่ได้ในสภาพแวดล้อมโลคัลที่ต่ออินเทอร์เน็ตไม่ได้อยู่แล้ว
แล้วก็มีปัญหาที่ทดสอบได้ไม่เต็มที่เพราะข้อจำกัดด้านแบนด์วิดท์ด้วยครับ ;;;

 
kunggom 2022-03-15

ข้อมูลเพิ่มเติมคือ บน Windows ก็มีคำสั่ง New-SelfSignedCertificate ใน PowerShell เช่นกัน จึงสามารถสร้างใบรับรองแบบ self-signed ได้โดยไม่ต้องติดตั้งเครื่องมือภายนอกเพิ่มเติม ผมเคยเขียนสคริปต์ PowerShell เพื่อ export ไฟล์ใบรับรองออกมาด้วยวิธีนี้แล้วนำมาใช้อยู่เหมือนกัน
https://www.sysnet.pe.kr/2/0/12588