คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
Server Name Indication (SNI) ช่วยให้แสดงเป้าหมาย HTTPS หลายรายการจากที่อยู่ IP และพอร์ตเดียวกันได้โดยไม่ต้องให้เป้าหมายเหล่านั้นใช้ใบรับรอง TLS เดียวกัน เมื่อเปิดใช้ SNI ในไคลเอ็นต์ ไคลเอ็นต์จะส่งชื่อโฮสต์ของปลายทางเป้าหมายเป็นส่วนหนึ่งของการเริ่มต้นการจับมือกันของ TLS ซึ่งช่วยให้เซิร์ฟเวอร์ TLS ระบุได้ว่าจะใช้ใบรับรอง TLS ใดในการตรวจสอบ คำขอ
ตัวอย่างเช่น หากเป้าหมายของคำขอคือ https://example.com/request/path,
ไคลเอ็นต์ TLS จะเพิ่มส่วนขยาย server_name ลงในคำขอการจับมือกันของ TLS
ดังที่แสดงด้านล่าง

Edge รองรับ SNI สำหรับกรณีต่อไปนี้
- คำขอจากแอปไคลเอ็นต์ไปยังพร็อกซี API ในสถานการณ์นี้ Edge จะทำหน้าที่เป็นเซิร์ฟเวอร์ TLS
- คำขอจาก Edge ไปยังแบ็กเอนด์ ในสถานการณ์นี้ Edge จะทำหน้าที่เป็นไคลเอ็นต์ TLS
ดูข้อมูลเพิ่มเติมเกี่ยวกับ SNI ได้ที่
- https://en.wikipedia.org/wiki/Server_Name_Indication
- http://blog.layershift.com/sni-ssl-production-ready/
การรองรับ SNI สำหรับคำขอที่ส่งไปยังพร็อกซี API ใน Edge
การรองรับ SNI สำหรับคำขอที่ส่งไปยังพร็อกซี API จะควบคุมโดยนามแฝงของโฮสต์และโฮสต์เสมือน
เกี่ยวกับโฮสต์เสมือน และนามแฝงของโฮสต์
ใน Edge โฮสต์เสมือนจะกำหนดที่อยู่ IP และพอร์ต หรือชื่อ DNS และพอร์ตที่ พร็อกซี API แสดง และโดยส่วนขยาย URL ที่แอปใช้เพื่อเข้าถึงพร็อกซี API ที่อยู่ IP/ชื่อ DNS จะสอดคล้องกับ Edge Router และหมายเลขพอร์ตคือพอร์ตที่เปิดใน Router
เมื่อสร้างโฮสต์เสมือน คุณยังต้องระบุนามแฝงของโฮสต์ของโฮสต์เสมือนด้วย
ซึ่งโดยปกติจะเป็นชื่อ DNS ของโฮสต์เสมือน Router จะเปรียบเทียบส่วนหัว Host ของคำขอขาเข้ากับ
รายการนามแฝงของโฮสต์ที่มีอยู่ซึ่งกำหนดโดยโฮสต์เสมือนทั้งหมด เพื่อกำหนดพร็อกซี API ที่
จัดการคำขอ
ค่าผสมของนามแฝงของโฮสต์และหมายเลขพอร์ตสำหรับโฮสต์เสมือนต้องไม่ซ้ำกันสำหรับ โฮสต์เสมือนทั้งหมดในการติดตั้ง Edge ซึ่งหมายความว่าโฮสต์เสมือนหลายรายการสามารถใช้ หมายเลขพอร์ตเดียวกันได้ หากมีนามแฝงของโฮสต์ที่แตกต่างกัน
นอกจากนี้ โฮสต์เสมือนยังกำหนดด้วยว่าพร็อกซี API จะเข้าถึงโดยใช้โปรโตคอล HTTP หรือ โดยโปรโตคอล HTTPS ที่เข้ารหัสโดยใช้ TLS เมื่อกำหนดค่าโฮสต์เสมือนให้ใช้ HTTPS, ให้เชื่อมโยงโฮสต์เสมือนกับคีย์สโตร์ที่มีใบรับรองและคีย์ส่วนตัวที่ โฮสต์เสมือนใช้ระหว่างการจับมือกันของ TLS
ดูข้อมูลเพิ่มเติมเกี่ยวกับโฮสต์เสมือนได้ที่
วิธีที่ SNI ทำงานร่วมกับ นามแฝงของโฮสต์
SNI ช่วยให้คุณกำหนดโฮสต์เสมือนหลายรายการในพอร์ตเดียวกันได้ โดยแต่ละรายการมี
ใบรับรองและคีย์ TLS ที่แตกต่างกัน จากนั้น Edge จะกำหนดโฮสต์เสมือนและคู่ใบรับรอง/คีย์ที่ TLS ใช้
ตามส่วนขยาย server_name
ในคำขอการจับมือกันของ TLS
Edge Router จะอ่านส่วนขยาย server_name ในคำขอการจับมือกันของ TLS
แล้วใช้ส่วนขยายดังกล่าวเพื่อค้นหานามแฝงของ โฮสต์ จากโฮสต์เสมือนทั้งหมด
หาก Router พบรายการที่ตรงกันกับนามแฝงของโฮสต์ Router จะใช้ใบรับรองและคีย์ TLS จาก
โฮสต์เสมือนที่เชื่อมโยงกับนามแฝงของโฮสต์ หากไม่พบรายการที่ตรงกัน การจับมือกันของ TLS จะล้มเหลว
คุณสามารถกำหนดคู่ใบรับรอง/คีย์เริ่มต้นได้ตามที่ อธิบายไว้ในส่วนถัดไป แทนที่จะทำให้การจับมือกันของ TLS ล้มเหลว
การกำหนดคู่ใบรับรอง/คีย์เริ่มต้นใน Edge สำหรับระบบคลาวด์
Apigee มีใบรับรอง TLS และคีย์ส่วนตัวเพื่อรองรับ HTTPS แม้ว่าลูกค้าหลายราย จะต้องการใช้ใบรับรองและคีย์ส่วนตัวของตนเองในเวลาที่ติดตั้งใช้งาน แต่คุณก็สามารถติดตั้งใช้งาน API โดยใช้ใบรับรองและคีย์ของ Apigee ได้
ใน Edge สำหรับระบบคลาวด์ หาก Router ไม่สามารถจับคู่ส่วนหัว SNI กับนามแฝงของโฮสต์ หรือหาก ไคลเอ็นต์ไม่รองรับ SNI Router จะใช้ใบรับรองเริ่มต้นที่ Apigee จัดหาให้ ซึ่งคือ *.apigee.net
การกำหนดคู่ใบรับรอง/คีย์เริ่มต้นใน Edge สำหรับ Private Cloud
ใน Edge สำหรับ Private Cloud หากไม่พบรายการที่ตรงกันระหว่างส่วนขยาย server_name กับนามแฝงของโฮสต์
จากโฮสต์เสมือนทั้งหมด หรือหากไคลเอ็นต์ที่ส่งคำขอไม่รองรับ SNI คุณสามารถกำหนดค่า
Router ให้ใช้ใบรับรอง/คีย์จากโฮสต์เสมือนเริ่มต้นในพอร์ตได้ โฮสต์เสมือนเริ่มต้นจะ
กำหนดโดยค่าผสมของชื่อองค์กร ชื่อสภาพแวดล้อม และชื่อโฮสต์เสมือนใน
รูปแบบต่อไปนี้
orgName_envName_vhName
Router จะใช้ใบรับรอง/คีย์จากค่าผสมของ orgName_envName_vhName ที่
ขึ้นต้นด้วยตัวอักษรแรก ตัวอย่างเช่น คำขอเข้ามาในพอร์ต 443 และมี
โฮสต์เสมือน 2 รายการที่กำหนดสำหรับองค์กร example ในสภาพแวดล้อม prod ดังนี้
- ชื่อโฮสต์เสมือน =
default - ชื่อโฮสต์เสมือน =
test
ในตัวอย่างนี้ Router จะใช้ใบรับรอง/คีย์จากโฮสต์เสมือนชื่อ default
เนื่องจาก example_prod_default มาก่อน example_prod_test ตามลำดับตัวอักษร
วิธีเปิดใช้โฮสต์เสมือนเริ่มต้น
- ในโหนด Router แรก ให้แก้ไข
/opt/apigee/customer/application/router.propertiesหากไม่มีไฟล์ดังกล่าว ให้สร้างขึ้น - เพิ่มพร็อพเพอร์ตี้ต่อไปนี้ลงในไฟล์เพื่อให้คุณกำหนดโฮสต์เสมือนเริ่มต้นได้
conf_load_balancing_load.balancing.driver.nginx.fallback.conf.enabled=true
- รีสตาร์ท Router
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- ทำตามขั้นตอนเหล่านี้ซ้ำใน Router ที่เหลือทั้งหมด
คุณสามารถกำหนดใบรับรอง/คีย์เริ่มต้นใน Router อย่างชัดเจนได้ แทนที่จะใช้ใบรับรอง/คีย์จากโฮสต์เสมือนเริ่มต้น ทำตามขั้นตอนต่อไปนี้เพื่อกำหนดคู่ใบรับรอง/คีย์เริ่มต้นอย่างชัดเจน
- ในโหนด Router แรก ให้คัดลอกใบรับรองและคีย์ส่วนตัวไปยังตำแหน่งในโหนด Router
ที่ผู้ใช้ apigee เข้าถึงได้ เช่น
/opt/apigee/customer/application - เปลี่ยนความเป็นเจ้าของไฟล์เป็นผู้ใช้ 'apigee'
chown apigee:apigee /opt/apigee/customer/application/myCert.pem
chown apigee:apigee /opt/apigee/customer/application/myKey.pem
- แก้ไข
/opt/apigee/customer/application/router.propertiesหากไม่มีไฟล์ดังกล่าว ให้สร้างขึ้น - เพิ่มพร็อพเพอร์ตี้ต่อไปนี้ลงในไฟล์เพื่อให้คุณระบุใบรับรอง/คีย์เริ่มต้นได้:
conf_load_balancing_load.balancing.driver.nginx.fallback.server.default.ssl.template.enabled=true
conf_load_balancing_load.balancing.driver.nginx.fallback.conf.enabled=true - ตั้งค่าพร็อพเพอร์ตี้ต่อไปนี้ใน
router.propertiesเพื่อระบุตำแหน่ง ของใบรับรองและคีย์conf_load_balancing_load.balancing.driver.nginx.ssl.cert=/opt/apigee/customer/application/myCert.pem conf_load_balancing_load.balancing.driver.nginx.ssl.key=/opt/apigee/customer/application/myKey.pem
- รีสตาร์ท Router
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- ทำตามขั้นตอนเหล่านี้ซ้ำใน Router ที่เหลือทั้งหมด
การรองรับ SNI สำหรับคำขอจาก Edge ไปยัง แบ็กเอนด์
Edge รองรับการใช้ SNI จาก Message Processor ไปยังปลายทางเป้าหมายในการติดตั้งใช้งาน Apigee Edge สำหรับ ระบบคลาวด์และสำหรับ Private Cloud โดยค่าเริ่มต้น SNI จะเปิดใช้ใน Edge Message Processor สำหรับระบบคลาวด์และปิดใช้ใน Private Cloud
การใช้ SNI กับแบ็กเอนด์ใน Edge สำหรับ Private Cloud
สำหรับ Edge สำหรับ Private Cloud เพื่อให้เข้ากันได้กับแบ็กเอนด์เป้าหมายที่มีอยู่ Apigee ได้ปิดใช้ SNI โดยค่าเริ่มต้น หากแบ็กเอนด์เป้าหมายได้รับการกำหนดค่าให้รองรับ SNI คุณสามารถ เปิดใช้ฟีเจอร์นี้ได้ตามที่อธิบายไว้ด้านล่างสำหรับ Edge เวอร์ชันของคุณ
ไม่จำเป็นต้องมีการกำหนดค่าเฉพาะของ Edge อื่นๆ หากสภาพแวดล้อมเป้าหมายได้รับการกำหนดค่าสำหรับ SNI Edge จะรองรับ SNI Edge จะแยกชื่อโฮสต์ออกจาก URL ของคำขอและเพิ่มชื่อโฮสต์ลงในคำขอการจับมือกันของ TLS โดยอัตโนมัติ
เปิดใช้ SNI ระหว่าง Edge กับแบ็กเอนด์สำหรับ Edge เวอร์ชัน 4.15.07.0x
ทำตามขั้นตอนต่อไปนี้เพื่อเปิดใช้ SNI
- ในโหนด Message Processor แรก ให้เปิดไฟล์
/opt/apigee4/conf/apigee/message-processor/system.propertiesในโปรแกรมแก้ไข - ตั้งค่าพร็อพเพอร์ตี้ต่อไปนี้เป็น "จริง" ใน
system.propertiesjsse.enableSNIExtension=true
- รีสตาร์ท Message Processor
/opt/apigee4/bin/apigee-service message-processor restart
- ทำตามขั้นตอนเหล่านี้ซ้ำใน Message Processor ที่เหลือทั้งหมด
เปิดใช้ SNI ระหว่าง Edge กับแบ็กเอนด์สำหรับ Edge เวอร์ชัน 4.16.01 ขึ้นไป
ทำตามขั้นตอนต่อไปนี้เพื่อเปิดใช้ SNI
- ในโหนด Message Processor แรก ให้แก้ไข
/opt/apigee/customer/application/message-processor.propertiesหากไม่มีไฟล์ดังกล่าว ให้สร้างขึ้น - เพิ่มพร็อพเพอร์ตี้ต่อไปนี้ลงในไฟล์
conf_system_jsse.enableSNIExtension=true
- รีสตาร์ท Message Processor
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- ทำตามขั้นตอนเหล่านี้ซ้ำใน Message Processor ที่เหลือทั้งหมด