คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
Server Name โปรดระบุ (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 ใน ขอบ
การสนับสนุน SNI สำหรับคำขอไปยังพร็อกซี API จะควบคุมโดยชื่อแทนโฮสต์และระบบเสมือน ผู้จัดรายการ
เกี่ยวกับระบบเสมือนจริง โฮสต์และชื่อแทนของโฮสต์
เมื่อใช้ Edge โฮสต์เสมือนจะกำหนดที่อยู่ IP และพอร์ต หรือชื่อและพอร์ต DNS ที่พร็อกซี API เปิดเผย และ URL ที่แอปใช้ในการเข้าถึงพร็อกซี API ตามส่วนขยาย ที่อยู่ IP/ชื่อ DNS สอดคล้องกับ Edge Router และหมายเลขพอร์ตคือพอร์ตแบบเปิดใน เราเตอร์
เมื่อคุณสร้างโฮสต์เสมือน คุณต้องระบุชื่อแทนของโฮสต์ของโฮสต์เสมือน
โดยทั่วไปจะเป็นชื่อ DNS ของโฮสต์เสมือน ในการพิจารณาพร็อกซี API ที่
จัดการคำขอ เราเตอร์จะเปรียบเทียบส่วนหัว Host
ของคำขอที่เข้ามาใหม่กับ
รายการของชื่อแทนโฮสต์ที่ใช้ได้ซึ่งกำหนดโดยโฮสต์เสมือนทั้งหมด
ค่าผสมของชื่อแทนโฮสต์และหมายเลขพอร์ตสำหรับโฮสต์เสมือนต้องไม่ซ้ำกันสำหรับ โฮสต์เสมือนในการติดตั้ง Edge ซึ่งหมายความว่าโฮสต์เสมือนหลายรายการสามารถใช้ฟังก์ชัน หมายเลขพอร์ตเดียวกัน หากมีชื่อแทนโฮสต์ต่างกัน
โฮสต์เสมือนจะกำหนดด้วยว่าจะมีการเข้าถึงพร็อกซี API โดยใช้โปรโตคอล HTTP หรือ ผ่านโปรโตคอล HTTPS ที่เข้ารหัสโดยใช้ TLS เมื่อกำหนดค่าโฮสต์เสมือนเพื่อใช้ HTTPS เชื่อมโยงโฮสต์เสมือนกับคีย์สโตร์ที่มีใบรับรองและคีย์ส่วนตัวที่ใช้โดย โฮสต์เสมือนระหว่างการแฮนด์เชค TLS
ดูข้อมูลเพิ่มเติมเกี่ยวกับโฮสต์เสมือนได้ที่
- เกี่ยวกับโฮสต์เสมือน
- การกำหนดค่า TLS สิทธิ์เข้าถึง API สำหรับ Private Cloud
- คีย์สโตร์และ Truststores
วิธีที่ SNI ทำงานร่วมกับ ชื่อแทนโฮสต์
SNI ให้คุณกำหนดโฮสต์เสมือนหลายรายการบนพอร์ตเดียวกัน โดยแต่ละโฮสต์มี
ใบรับรองและคีย์ TLS จากนั้น Edge จะกำหนดโฮสต์เสมือน และคู่คีย์ cert/คีย์ที่ TLS ใช้
อิงจาก server_name
ในคำขอแฮนด์เชค TLS
Edge Router จะอ่านส่วนขยาย server_name
ในแฮนด์เชค TLS
ก่อน แล้วจึงใช้เพื่อค้นหาชื่อแทนของโฮสต์จากอุปกรณ์เสมือนทั้งหมด
ผู้จัดรายการ หากเราเตอร์ตรวจพบการจับคู่กับชื่อแทนโฮสต์ เราเตอร์จะใช้ใบรับรอง TLS และคีย์จาก
โฮสต์เสมือนที่เชื่อมโยงกับชื่อแทนของโฮสต์ หากไม่พบรายการที่ตรงกัน ระบบจะดำเนินการแฮนด์เชค TLS ไม่สำเร็จ
แทนที่จะทำให้แฮนด์เชค TLS ล้มเหลว คุณสามารถกำหนด cert/คู่คีย์เริ่มต้น ได้โดยทำดังนี้ ดังที่อธิบายไว้ในส่วนถัดไป
การกำหนดใบรับรอง/คู่คีย์เริ่มต้นใน Edge สำหรับระบบคลาวด์
Apigee มีใบรับรอง TLS และคีย์ส่วนตัวเพื่อรองรับ HTTPS แม้ว่าลูกค้าหลายราย ต้องการใช้ใบรับรองและคีย์ส่วนตัวของตนเองเมื่อติดตั้งใช้งาน คุณก็สามารถทำให้ API ใช้งานได้ โดยใช้ใบรับรองและคีย์ Apigee
ใน Edge สำหรับระบบคลาวด์ หากเราเตอร์จับคู่ส่วนหัว SNI กับชื่อแทนโฮสต์ไม่ได้ หรือหากเราเตอร์ ไคลเอ็นต์ไม่รองรับ SNI เราเตอร์จะใช้ใบรับรองเริ่มต้นที่ Apigee ระบุไว้ ซึ่งก็คือ *.apigee.net
การกำหนดใบรับรอง/คู่คีย์เริ่มต้นใน Edge สำหรับ Private Cloud
ใน Edge สำหรับ Private Cloud หากไม่พบรายการที่ตรงกันระหว่างส่วนขยาย server_name
และชื่อแทนของโฮสต์
จากโฮสต์เสมือนทั้งหมด หรือหากไคลเอ็นต์ที่ส่งคำขอไม่สนับสนุน SNI คุณสามารถกำหนดค่า
เราเตอร์เพื่อใช้ใบรับรอง/คีย์จากโฮสต์เสมือนเริ่มต้นบนพอร์ต โฮสต์เสมือนเริ่มต้นคือ
กำหนดโดยชุดค่าผสมของชื่อองค์กร ชื่อสภาพแวดล้อม และชื่อโฮสต์เสมือนใน
แบบฟอร์ม:
orgName_envName_vhName
เราเตอร์ใช้ cert/คีย์จากชุดค่าผสมของ orgName_envName_vhName ที่
จะมาก่อนตามลำดับตัวอักษร ตัวอย่างเช่น คำขอจะส่งมาที่พอร์ต 443 และมี
โฮสต์เสมือน 2 รายการที่กำหนดไว้สำหรับองค์กร example
ในสภาพแวดล้อม prod
:
- ชื่อโฮสต์เสมือน =
default
- ชื่อโฮสต์เสมือน =
test
ในตัวอย่างนี้ เราเตอร์จะใช้ cert/คีย์จากโฮสต์เสมือนที่ชื่อ default
เพราะ example_prod_default
มาก่อน example_prod_test
ตามลำดับตัวอักษร
วิธีเปิดใช้งานโฮสต์เสมือนเริ่มต้น
- ในโหนดเราเตอร์แรก ให้แก้ไข
/opt/apigee/customer/application/router.properties
หากไม่มี ให้สร้างไฟล์ดังกล่าว - เพิ่มพร็อพเพอร์ตี้ต่อไปนี้ลงในไฟล์เพื่อให้คุณกำหนดโฮสต์เสมือนเริ่มต้นได้
conf_load_balancing_load.balancing.driver.nginx.fallback.conf.enabled=true
- รีสตาร์ทเราเตอร์ดังนี้
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- ทำซ้ำขั้นตอนเหล่านี้บนเราเตอร์ที่เหลือทั้งหมด
แทนที่จะใช้ cert/คีย์จากโฮสต์เสมือนที่เป็นค่าเริ่มต้น คุณสามารถกำหนดคำสั่ง ใบรับรอง/คีย์เริ่มต้นบนเราเตอร์ ใช้ขั้นตอนต่อไปนี้เพื่อกำหนดค่าเริ่มต้นที่ชัดเจน คู่คีย์/การรับรอง:
- ในโหนดเราเตอร์แรก ให้คัดลอกใบรับรองและคีย์ส่วนตัวไปยังตำแหน่งบนโหนดเราเตอร์
ที่ผู้ใช้ 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
- รีสตาร์ทเราเตอร์ดังนี้
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- ทำซ้ำขั้นตอนเหล่านี้บนเราเตอร์ที่เหลือทั้งหมด
การรองรับ SNI สำหรับคำขอจาก Edge ไปยัง แบ็กเอนด์
Edge รองรับการใช้ SNI จาก Message Processor เพื่อกำหนดเป้าหมายปลายทางใน Apigee Edge สำหรับ Cloud และสำหรับการติดตั้งใช้งาน Private Cloud โดยค่าเริ่มต้น ระบบจะเปิดใช้ SNI ในโปรแกรมประมวลผลข้อความ Edge สำหรับระบบคลาวด์ และปิดใช้ใน Private Cloud
การใช้ SNI ไปยังแบ็กเอนด์ใน Edge สำหรับ Private Cloud
Edge สำหรับ Private Cloud สามารถใช้งานร่วมกับแบ็กเอนด์เป้าหมายที่มีอยู่ได้แบบย้อนหลัง Apigee ได้ปิดใช้ SNI เป็นค่าเริ่มต้นแล้ว หากมีการกำหนดค่าแบ็กเอนด์เป้าหมายให้รองรับ SNI คุณจะดำเนินการต่อไปนี้ได้ เปิดใช้ฟีเจอร์นี้ตามที่อธิบายไว้ด้านล่างสำหรับเวอร์ชัน Edge ของคุณ
โดยไม่ต้องกําหนดค่าอื่นๆ สําหรับ Edge โดยเฉพาะ หากมีการกำหนดค่าสภาพแวดล้อมเป้าหมายเป็น SNI และ Edge รองรับ Edge จะดึงข้อมูลชื่อโฮสต์จาก URL ของคำขอและเพิ่มชื่อโฮสต์โดยอัตโนมัติ ไปยังคำขอแฮนด์เชค TLS
เปิดใช้ SNI ระหว่าง Edge กับแบ็กเอนด์สำหรับ Edge เวอร์ชัน 4.15.07.0x
โปรดใช้กระบวนการต่อไปนี้เพื่อเปิดใช้ SNI
- ในโหนดตัวประมวลผลข้อความแรก ให้เปิดไฟล์
/opt/apigee4/conf/apigee/message-processor/system.properties
ในเครื่องมือแก้ไข - ตั้งค่าพร็อพเพอร์ตี้ต่อไปนี้เป็น "จริง" ใน
system.properties
jsse.enableSNIExtension=true
- รีสตาร์ทโปรแกรมประมวลผลข้อความ
/opt/apigee4/bin/apigee-service message-processor restart
- ทำซ้ำขั้นตอนเหล่านี้ใน Message Processor ที่เหลือทั้งหมด
เปิดใช้ SNI ระหว่าง Edge กับแบ็กเอนด์สำหรับ Edge เวอร์ชัน 4.16.01 ขึ้นไป
โปรดใช้กระบวนการต่อไปนี้เพื่อเปิดใช้ SNI
- ในโหนดตัวประมวลผลข้อความแรก ให้แก้ไข
/opt/apigee/customer/application/message-processor.properties
หากไม่มี ให้สร้างไฟล์ดังกล่าว - เพิ่มพร็อพเพอร์ตี้ต่อไปนี้ลงในไฟล์
conf_system_jsse.enableSNIExtension=true
- รีสตาร์ทโปรแกรมประมวลผลข้อความ
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- ทำซ้ำขั้นตอนเหล่านี้ใน Message Processor ที่เหลือทั้งหมด