บันทึกการชี้ sub domain ไปยัง local server ผ่าน endian firewall เพื่อใช้งานกับ LINE Developers

โจทย์คือ เครื่องเป็น Local Server ไม่ได้เพิ่มการ์ด หรือ ให้ public IP แต่ต้องการใช้เครื่องนี้กับ LINE Developers เช่น LIFF App จำเป็นต้องมี domain ที่ใช้งาน https เท่านั้น

สิ่งที่ต้องมี

  1. Domain Name ที่จดไว้แล้ว
  2. Direct Admin ติดตั้งไว้บน hosting และมี Let’s Encrypt สำหรับสร้าง SSL Certificate
  3. Vesta ที่ติดตั้งไว้บน local server
  4. Endian Firewall ใช้สำหรับทำ NAT
  5. LINE Developer ที่จะใช้งาน

1. กระบวนการบน Direct Admin

สร้าง Sub-Domain

เข้าเมนู Subdomain Management

ด้านล่างสุดใส่ชื่อที่ต้องการเข้าไป จากนั้นกด Create

สร้าง SSL Certificates

เลือกเมนู SSL Certificates

จากนั้นเลือก sub-domain ที่สร้างไว้ และกด Save จากนั้นรอจนกว่าจะสร้าง Keys เสร็จ อาจใช้เวลา 10 นาที

ชี้โดเมน ไปยัง IP ใหม่

เลือก DNS Management เพื่อจัดการกับ pointer

ลบ pointer ของ sub domain เดิมออกก่อน โดยการเลือก [/] ด้านหลัง sub domain โดยปกติแล้วจะมี 2 ที่ คือ ชื่อ subdomain กับ www.ชื่อ subdomain เช่น example , www.example

ตรง Add Domain Records ให้เพิ่มชื่อ subdomain ข้างต้นเข้าไป แต่ระบุหมายเลข IP เป็น Public IP ของเครื่องปลายทาง (ในที่นี้จะหมายถึง IP ของ Endian ฝั่ง WAN) เสร็จแล้วกด Add

กลับไปหน้า SSL อีกครั้งเพื่อคัดลอก SSL Key ซึ่งจะมี 2 ส่วน

-----BEGIN RSA PRIVATE KEY-----
MIIJKQIBAAKCAgEA0i0Qd60UTDjf/N66jTJGlTgMnuWW4BqhjHQsjmTS9pswM4Ta
DDmK7BCdXfZneRNDKclsd815TSudspzSq6rqCVE0ku+Sm4kVqNX4GiDb6iS58O98
...
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIIBTCCBu2gAwIBAgISBEKT+D86oYV2fPYrSRwSsWSNMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
...
-----END CERTIFICATE-----

2. กระบวนการบน Vesta

มาที่ Local Server ไปที่ WEB > Edit จากนั้นเพิ่ม Aliases เป็นชื่อ subdomain ที่เราสร้างขึ้น

จากนั้นให้นำ SSL key มากรอกในส่วนของ SSL Support โดยเข้าที่ SSL Support นำ key มาใส่ทั้ง 3 ช่องเลย หรือ จะใส่แค่ 2 ช่องบนก็ได้ จากนั้นกด Save

3. กระบวนการบน Endian Firewall

เนื่องจากเราไม่ได้ให้ Public IP วิ่งเข้ามาหาเครื่อง Local Server ตรงๆ เราจึงต้องทำผ่าน NAT โดยเข้าไปที่ Endian Management เลือกที่ Network > Add new host

กรอกข้อมูลโดยมีรายละเอียดดังนี้

  • IP Address: เลข IP ของ Local Server
  • Hostname: ชื่อของ sub domain
  • Domain name: ชื่อ Domain ข้างต้น

เมื่อครบถ้วนแล้วกด Add และกด Apply อีกครั้ง

ในขั้นตอนนี้ให้เราลอง เข้าทดสอบดูว่า

  1. Pointer ชี้มาที่ IP ใหม่หรือยัง โดยการ ping example.domainname ถ้ายังไม่เป็นเลขใหม่ก็ต้องรอ หรืออาจแก้ TTL ให้น้อยลง
  2. ควรเข้าผ่าน Browser ได้แล้ว
  3. ควรใช้งานผ่าน https ได้แล้ว

4. กระบวนการบน LINE Developers

กระบวนการนี้แทบไม่มีอะไรเลยครับ เป็นส่วนที่แค่ยืนยันว่า ใช้ Local Server ภายในวง LAN ที่มี Public IP ก็สามารถเอามาใช้กับ LINE Dev ได้ไม่จำเป็นต้องใช้ Hosting ภายนอกเสมอไป ซึ่ง LINE เองก็ไม่ได้บังคับว่าจะใช้เครื่องอะไร ขอเพียงมี SSL ที่ถูกต้องใช้งานได้ ก็เท่านั้น !!

สรุป

กระบวนการข้างต้นหากมี IP จริง มี Domain มี SSL และ Server ภายในมี card lan 2 ใบ ตั้ง Local IP กับ Public IP เอาไว้ ก็ไม่ต้องใช้ท่าที่ผมกล่าวมาข้างต้น อาจจะง่ายกว่าด้วยซ้ำ แต่การเชื่อมต่อจากภายนอกเข้ามาก็อย่าลืมคำนึงถึงความปลอดภัยด้วย