เอกสารนี้ให้ข้อมูลรหัสผ่าน, การยืนยันตัวตน, การกำหนดค่า SSL, การแบ่งเครือข่าย, การสื่อสารที่มีการเข้ารหัส, ส่วนหัว HTTP และโปรโตคอล TLS เว็บเซิร์ฟเวอร์ตามที่เกี่ยวข้องกับไคลเอนต์ WhatsApp Business API
โปรดอ้างอิงเอกสารประกอบเกี่ยวกับการเข้าสู่ระบบและการยืนยันตัวตนเพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับโทเค็นการยืนยันตัวตนและหลักปฏิบัติที่ดีที่สุดเกี่ยวกับรหัสผ่าน
สิทธิ์การเข้าถึงไคลเอนต์ WhatsApp Business API ต้องมี HTTPS
ไคลเอนต์ WhatsApp Business API จะสร้างใบรับรองแบบลงนามด้วยตนเองตามค่าเริ่มต้นเมื่อสร้างไคลเอนต์ขึ้นมา คุณอาจต้องใช้ใบรับรอง Certification Authority (CA) สำหรับสร้างใบรับรองแบบลงนามด้วยตนเองเพื่อตรวจสอบยืนยันตำแหน่งข้อมูลไคลเอนต์ WhatsApp Business API และเพื่อไม่ให้พบคำเตือนความไว้วางใจของใบรับรอง หรืออาจอัพโหลดใบรับรอง CA แทนใบรับรองแบบลงนามด้วยตนเองก็ได้ ดูเอกสารประกอบเกี่ยวกับใบรับรอง CA เพื่อดูข้อมูลเพิ่มเติม
เนื่องจาก Webhooks กำหนดให้ต้องใช้ HTTPS สำหรับการเรียกกลับเช่นเดียวกัน คุณสามารถใช้ใบรับรอง CA ของตนเองเพื่อป้องกันไม่ให้แอพพลิเคชั่นพบข้อผิดพลาด SSL เมื่อพยายามที่จะใช้การดำเนินการ POST
กับ Webhook ที่กำหนดค่าแล้ว ดูข้อมูลเพิ่มเติมที่เอกสารประกอบเกี่ยวกับใบรับรอง CA ของ Webhooks
เราขอแนะนำให้คุณโฮสต์โหนด Webapp และ Coreapp ในเครือข่ายที่แบ่งส่วนแยกไว้ และแสดงโหนดเฉพาะกับบริการที่จำเป็นเท่านั้น
โหนด Webapp ควรแสดง API และตำแหน่งข้อมูลการดูแลจัดการเว็บให้กับเครือข่ายที่มีการโฮสต์ไคลเอนต์ WhatsApp Business API และเวิร์กสเตชั่นของเจ้าหน้าที่บริหารจัดการเท่านั้น
โหนด Coreapp ควรแสดงบริการการสื่อสารให้กับโหนด Webapp เท่านั้น และในการตั้งค่าการเชื่อมต่อหลายจุด ให้แสดงบริการการควบคุมเฉพาะกับโหนด Coreapp เท่านั้น
เราขอแนะนำให้คุณตั้งตัวแปรสภาพแวดล้อม WA_SECRET
ทั้งในคอนเทนเนอร์ Coreapp และ Webapp เพื่อให้แน่ใจว่าการสื่อสารระหว่างทั้งสองรายการนี้จะได้รับการเข้ารหัส
หมายเหตุ: โฮสต์ Coreapp และ Webapp ต้องมีการซิงค์นาฬิกาไว้ การเข้ารหัสจึงจะทำงานได้อย่างสมบูรณ์ หากเวลาไม่ตรงกัน ตัวป้องกันการเล่นซ้ำ (หรือการตรวจสอบประทับเวลาโดยมีระยะเวลาผ่อนผัน 10 วินาที) อาจเกิดการสื่อสารล้มเหลว
คุณสามารถกำหนดพารามิเตอร์ SSL ที่ใช้ในการเข้ารหัสการเชื่อมต่อฐานข้อมูลเพื่อปกป้องข้อมูลระหว่างการโอนย้าย
ก่อนหน้านี้ การเข้ารหัสจะทำได้เฉพาะสำหรับการเชื่อมต่อจาก Coreapp ไปยังฐานข้อมูลเท่านั้นโดยใช้ตัวแปรสภาพแวดล้อม WA_DB_CONNECTION_OPTION
เนื่องจากก่อนหน้าจะมีเพียง Coreapp เท่านั้นที่มีสิทธิ์เข้าถึงฐานข้อมูล อย่างไรก็ตาม คอนเทนเนอร์ Webapp จะมีสิทธิ์เข้าถึงฐานข้อมูลด้วย คุณจึงควรเข้ารหัสการเชื่อมต่อจาก Webapp ไปยังฐานข้อมูลด้วยเช่นกัน สำหรับการดำเนินการนี้ การกำหนดค่า SSL จะมีการเปลี่ยนแปลงเพื่อให้มีสถานะเป็นกลางซึ่งจะเอื้อให้คอนเทนเนอร์ทั้งหมดเข้าถึงได้ การเข้ารหัสสามารถกำหนดค่าได้โดยใช้ตัวแปรสภาพแวดล้อมต่อไปนี้
WA_DB_SSL_KEY
WA_DB_SSL_CERT
WA_DB_SSL_CA
WA_DB_SSL_VERIFY
WA_DB_SSL_VERIFY
สามารถกำหนดค่าได้เพื่อตรวจสอบยืนยันข้อมูลระบุตัวตนของเซิร์ฟเวอร์ พารามิเตอร์นี้จำเป็นต่อการตั้งค่าการพัฒนาภายในบางส่วนและขอแนะนำอย่างยิ่งไม่ให้คุณปิดการตรวจสอบยืนยัน หากไม่ได้ตั้งค่าพารามิเตอร์นี้ การตรวจสอบยืนยันจะเปิดไว้ตามค่าเริ่มต้น หากต้องการปิดการตรวจสอบยืนยัน ให้ระบุดังนี้
WA_DB_SSL_VERIFY=0
หมายเหตุ:WA_DB_SSL_VERIFY
ใช้งานได้เฉพาะกับ Webapp เท่านั้น
ระบบจะยังคงรองรับ WA_DB_CONNECTION_OPTION
ต่อไปในโหมดที่เลิกใช้งานและจะใช้เพื่อเข้ารหัสการเชื่อมต่อ Coreapp เข้ากับฐานข้อมูล เพื่อให้ใช้งานร่วมกับรุ่นก่อนหน้าได้ เราขอแนะนำอย่างยิ่งให้คุณเปลี่ยนมาใช้พารามิเตอร์ใหม่เหล่านี้
ไฟล์ทั้งหมดที่กำหนดค่าในตัวแปรสภาพแวดล้อม Key, Cert และ CA ต้องสามารถเข้าถึงได้ภายในคอนเทนเนอร์ หากต้องการดำเนินการนี้ คุณสามารถสร้างไดเรกทอรี certs
สำหรับปริมาณข้อมูลที่มีสิทธิ์การอนุญาตที่เหมาะสม ปริมาณข้อมูลมักจะได้รับการกำหนดไว้เป็น /usr/local/waent/data
และไดเรกทอรีใบรับรองจะสามารถเข้าถึงได้ที่ /usr/local/waent/data/certs
ภายในคอนเทนเนอร์
โปรโตคอล TLS และรหัสลับจะได้รับการกำหนดค่าตามการกำหนดค่าที่ Mozilla แนะนำ Webapp รองรับโปรไฟล์ 3 แบบได้แก่ MODERN (ค่าเริ่มต้น), INTERMEDIATE และ OLD
เราขอแนะนำให้คงการกำหนดค่าเริ่มต้นเอาไว้เพื่อการรักษาความปลอดภัยที่ดียิ่งขึ้น อย่างไรก็ตาม คุณสามารถเลือกลดระดับโปรไฟล์ลงได้โดยใช้ตัวแปรสภาพแวดล้อม WA_WEB_SECURITY_LEVEL
ระบบรองรับส่วนหัว HTTP ต่อไปนี้สำหรับผู้ดูแลเว็บ แต่ไม่ใช่สำหรับตำแหน่งข้อมูล API และจะขึ้นอยู่กับเบราว์เซอร์ที่ใช้ด้วยเช่นกัน
ชื่อ | คำอธิบาย |
---|---|
| ระบุนโยบายที่จะอนุญาตเฉพาะสคริปต์จากโดเมนเดียวกันให้ทำงานบนผู้ดูแลเว็บได้ |
| ส่วนหัวไม่อนุญาตให้โดเมนใดๆ รวมหน้าผู้ดูแลเว็บเป็น iframe |
| ส่วนหัวของการป้องกันที่ช่วยให้หน้าผู้ดูแลเว็บปลอดภัยจากการโจมตีด้วยวิธีเขียนสคริปต์ข้ามไซต์ได้ โดยจะกรองอินพุตเพื่อตรวจหาการโจมตี |
| รับรองว่าประเภทเนื้อหาที่เซิร์ฟเวอร์ได้รับเป็นรายการเดียวกับที่เซิร์ฟเวอร์ร้องขอ |
| รับรองว่าผู้ดูแลเว็บจะเข้าถึงได้ผ่าน HTTPS เท่านั้น |