คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
Server Name โปรดระบุ (SNI) ช่วยให้เซิร์ฟเวอร์แบ็กเอนด์ HTTPS หลายเซิร์ฟเวอร์สามารถให้บริการจากเซิร์ฟเวอร์เดียวกันได้ ที่อยู่ IP และพอร์ตที่ไม่จำเป็นต้องให้เซิร์ฟเวอร์แบ็กเอนด์เหล่านั้นใช้ใบรับรอง TLS เดียวกัน ซึ่งเป็นส่วนขยายของโปรโตคอล TLS เมื่อเปิดใช้ SNI บนไคลเอ็นต์ ไคลเอ็นต์จะส่ง ชื่อโฮสต์ของเซิร์ฟเวอร์แบ็กเอนด์โดยเป็นส่วนหนึ่งของแฮนด์เชค TLS เริ่มต้น ซึ่งช่วยให้ เซิร์ฟเวอร์ TLS เพื่อกำหนดว่าควรใช้ใบรับรอง TLS ใดเพื่อตรวจสอบคำขอจาก ของคุณ
โดยค่าเริ่มต้น SNI จะถูกปิดใช้ในคอมโพเนนต์ Message Processor ใน Edge สำหรับ Private Cloud เพื่อตรวจสอบความเข้ากันได้แบบย้อนหลังกับเซิร์ฟเวอร์แบ็กเอนด์ที่มีอยู่ หากเซิร์ฟเวอร์แบ็กเอนด์ของคุณคือ มีการกำหนดค่าให้รองรับ SNI คุณจะต้องเปิดใช้งาน SNI ในคอมโพเนนต์ตัวประมวลผลข้อความ มิฉะนั้นคำขอ API ที่ส่งผ่าน Apigee Edge จะล้มเหลวโดยมี แฮนด์เชค TLS ล้มเหลว
เอกสารนี้อธิบายวิธีดำเนินการต่อไปนี้
- ระบุว่าเซิร์ฟเวอร์แบ็กเอนด์เปิดใช้ SNI หรือไม่
- เปิดใช้ SNI บน Message Processor เพื่อสื่อสารกับแบ็กเอนด์ เซิร์ฟเวอร์ที่รองรับ SNI
- ปิดใช้ SNI ในตัวประมวลผลข้อความ หากจำเป็น
- ยืนยันว่าอัปเดตการกำหนดค่า SNI สำเร็จแล้วใน ตัวประมวลผลข้อความ
ก่อนเริ่มต้น
- หากคุณไม่คุ้นเคยกับ SNI โปรดอ่าน การใช้ SNI กับ Edge
- หากคุณไม่คุ้นเคยกับการกำหนดค่า Edge บน Private Cloud โปรดอ่าน วิธีกำหนดค่า Edge
การระบุเซิร์ฟเวอร์ที่เปิดใช้งาน SNI
ส่วนนี้จะอธิบายวิธีระบุว่าเซิร์ฟเวอร์แบ็กเอนด์เปิดใช้ SNI หรือไม่
-
เรียกใช้คำสั่ง
openssl
แล้วลองเชื่อมต่อกับชื่อโฮสต์ของเซิร์ฟเวอร์ที่เกี่ยวข้อง (เราเตอร์ Edge หรือเซิร์ฟเวอร์แบ็กเอนด์) โดยไม่ส่งชื่อเซิร์ฟเวอร์ ดังที่แสดงด้านล่างopenssl s_client -connect hostname:port
-
คุณอาจได้รับใบรับรองและบางครั้งอาจพบความล้มเหลวในแฮนด์เชคใน
คำสั่ง
openssl
ตามที่แสดงด้านล่าง
CONNECTED(00000003) 9362:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.6/src/ssl/s23_clnt.c:593
-
เรียกใช้คำสั่ง
openssl
แล้วลองเชื่อมต่อกับเซิร์ฟเวอร์ที่เกี่ยวข้อง ชื่อโฮสต์ (เราเตอร์ Edge หรือเซิร์ฟเวอร์แบ็กเอนด์) โดยส่งชื่อเซิร์ฟเวอร์ดังที่แสดงด้านล่างopenssl s_client -connect hostname:port -servername hostname
- หากแฮนด์เชคล้มเหลวในขั้นตอนที่ 1 หรือได้รับใบรับรองอื่นในขั้นตอนที่ 1 และขั้นตอนที่ 2 แสดงว่าเซิร์ฟเวอร์ที่ระบุเปิดใช้ SNI อยู่
- หากคุณต้องการตรวจสอบเรื่องนี้สำหรับเซิร์ฟเวอร์แบ็กเอนด์มากกว่า 1 เซิร์ฟเวอร์ คุณต้อง ทำขั้นตอนข้างต้นซ้ำกับเซิร์ฟเวอร์แบ็กเอนด์แต่ละเซิร์ฟเวอร์
หากพบเซิร์ฟเวอร์แบ็กเอนด์อย่างน้อย 1 เซิร์ฟเวอร์ที่เปิดใช้ SNI คุณจะต้องทำดังนี้ เปิดใช้งาน SNI บนคอมโพเนนต์โปรแกรมประมวลผลข้อความตามที่อธิบายไว้ด้านล่าง มิฉะนั้น API คำขอที่ส่งผ่าน Apigee Edge จะล้มเหลวด้วย แฮนด์เชค TLS ล้มเหลว
เปิดใช้ SNI ระหว่าง Edge Message Processor และเซิร์ฟเวอร์แบ็กเอนด์
ส่วนนี้จะอธิบายวิธีเปิดใช้ SNI ระหว่าง Edge Message Processor กับแบ็กเอนด์
เซิร์ฟเวอร์ เปิดใช้ SNI ได้ผ่านพร็อพเพอร์ตี้ jsse.enableSNIExtension
ใน
คอมโพเนนต์ตัวประมวลผลข้อความ ในการกำหนดค่าพร็อพเพอร์ตี้ใดๆ ในโปรแกรมประมวลผลข้อความ ให้ใช้
โทเค็นตามไวยากรณ์ที่อธิบายไว้ใน
วิธีกำหนดค่า Edge
หากต้องการเปิดใช้งาน SNI ในตัวประมวลผลข้อความ ให้ทำตามขั้นตอนต่อไปนี้
ค้นหาโทเค็นสำหรับพร็อพเพอร์ตี้ jsse.enableSNIExtension
ขั้นตอนต่อไปนี้อธิบายวิธีค้นหาโทเค็นสำหรับ
พร็อพเพอร์ตี้ jsse.enableSNIExtension
:
-
ค้นหาพร็อพเพอร์ตี้
jsse.enableSNIExtension
ในแหล่งที่มาของ Message Processor ไดเรกทอรี/opt/apigee/edge-message-processor/source
โดยใช้คำสั่งต่อไปนี้grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
-
เอาต์พุตของคำสั่งนี้จะแสดงโทเค็นสำหรับพร็อพเพอร์ตี้ของผู้ประมวลผลข้อมูลข้อความ
jsse.enableSNIExtension
ดังนี้/opt/apigee/edge-message-processor/source/conf/system.properties:jsse.enableSNIExtension={T}conf_system_jsse.enableSNIExtension{/T}
โดยที่สตริงระหว่างแท็ก
{T}{/T}
คือชื่อของโทเค็นที่ ที่คุณสามารถตั้งค่าในไฟล์.properties
ของตัวประมวลผลข้อความดังนั้น โทเค็นสำหรับพร็อพเพอร์ตี้
jsse.enableSNIExtension
จึงเป็นดังนี้conf_system_jsse.enableSNIExtension
เปิดใช้ SNI ในตัวประมวลผลข้อความ
ขั้นตอนต่อไปนี้อธิบายวิธีเปิดใช้ SNI ในคอมโพเนนต์ Apigee Message Processor
- ให้เปิดไฟล์ต่อไปนี้ในตัวแก้ไขในเครื่องประมวลผลข้อความ หากไม่เป็นเช่นนั้น
มีอยู่แล้ว ให้สร้างขึ้นมา
/opt/apigee/customer/application/message-processor.properties
เช่น หากต้องการเปิดไฟล์โดยใช้
vi
ให้ป้อนคำสั่งต่อไปนี้vi /opt/apigee/customer/application/message-processor.properties
-
เพิ่มบรรทัดในรูปแบบต่อไปนี้ลงในไฟล์พร็อพเพอร์ตี้
conf_system_jsse.enableSNIExtension=true
- บันทึกการเปลี่ยนแปลง
-
ตรวจสอบว่าไฟล์พร็อพเพอร์ตี้นี้เป็นของผู้ใช้
apigee
ดังที่แสดงด้านล่างchown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
รีสตาร์ทโปรแกรมประมวลผลข้อความดังที่แสดงด้านล่าง
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- ยืนยันว่าการกำหนดค่า SNI ได้รับการอัปเดตใน Message Processor
- หากคุณมีโปรแกรมประมวลผลข้อความมากกว่าหนึ่งโปรแกรม ให้ทำขั้นตอนข้างต้นซ้ำในทุก ตัวประมวลผลข้อความ
ปิดใช้ SNI ระหว่าง Edge Message Processor และเซิร์ฟเวอร์แบ็กเอนด์
โดยทั่วไปแล้วคุณไม่น่าจะพบปัญหาใดๆ หลังจากเปิดใช้ SNI แต่หากคุณสังเกต ปัญหาการเชื่อมต่อระหว่าง Edge Message Processor และเซิร์ฟเวอร์แบ็กเอนด์หลังจาก เมื่อเปิดใช้ SNI คุณสามารถปิดใช้ SNI ได้ทุกเมื่อโดยทำตามขั้นตอนต่อไปนี้
ปิดใช้ SNI ได้โดยการตั้งค่าพร็อพเพอร์ตี้ jsse.enableSNIExtension
กลับไปที่ false
ในคอมโพเนนต์โปรแกรมประมวลผลข้อความ
ปิดใช้ SNI บน Message Processor
ขั้นตอนต่อไปนี้อธิบายวิธีปิดใช้ SNI ในตัวประมวลผลข้อความ Apigee
-
ให้เปิดไฟล์ต่อไปนี้ในตัวแก้ไขในเครื่องประมวลผลข้อความ หากไม่เป็นเช่นนั้น
มีอยู่แล้ว ให้สร้างขึ้นมา
/opt/apigee/customer/application/message-processor.properties
เช่น หากต้องการเปิดไฟล์โดยใช้
vi
ให้ป้อนคำสั่งต่อไปนี้vi /opt/apigee/customer/application/message-processor.properties
-
หากมีบรรทัด
conf_system_jsse.enableSNIExtension=true
ใน/opt/apigee/customer/application/message-processor.properties
จากนั้นแก้ไขเป็น ดังต่อไปนี้:conf_system_jsse.enableSNIExtension=false
- บันทึกการเปลี่ยนแปลง
-
ตรวจสอบว่าไฟล์พร็อพเพอร์ตี้นี้เป็นของผู้ใช้
apigee
ดังที่แสดงด้านล่างchown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
รีสตาร์ทโปรแกรมประมวลผลข้อความดังที่แสดงด้านล่าง
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- ยืนยันว่าการกำหนดค่า SNI ได้รับการอัปเดตใน Message Processor
- หากคุณมีโปรแกรมประมวลผลข้อความมากกว่าหนึ่งรายการ ให้ทำขั้นตอนข้างต้นซ้ำในทุก ตัวประมวลผลข้อความ
การยืนยันการกำหนดค่า SNI บนตัวประมวลผลข้อความ
หัวข้อนี้จะอธิบายวิธียืนยันว่าการกำหนดค่า SNI สำเร็จแล้ว ที่มีการอัปเดตใน Message Processor
แม้ว่าคุณจะใช้โทเค็น conf_system_jsse.enableSNIExtension
เพื่อ
กำหนดค่า SNI บน Message Processor คุณต้องยืนยันว่าคุณสมบัติจริง
ตั้งค่า jsse.enableSNIExtension
ด้วยค่าใหม่แล้ว
-
ค้นหาคุณสมบัติ
jsse.enableSNIExtension
ในเครื่องประมวลผลข้อความ ในไดเรกทอรี/opt/apigee/edge-message-processor/conf
แล้วตรวจสอบว่ามี ด้วยค่าใหม่ดังที่แสดงด้านล่างแล้วgrep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
-
หากอัปเดตการกำหนดค่า SNI ในโปรแกรมประมวลผลข้อความสำเร็จ ระบบจะประมวลผลข้อความ
ข้างต้นจะแสดงค่าใหม่ในไฟล์
system.properties
ผลลัพธ์ตัวอย่างจากคำสั่งข้างต้นหลังจากที่คุณเปิดใช้ SNI ในตัวประมวลผลข้อความ ดังนี้
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true
ในทำนองเดียวกัน ผลลัพธ์ตัวอย่างจากคำสั่งข้างต้นหลังจากที่คุณปิดใช้ SNI ใน ตัวประมวลผลข้อความมีดังนี้
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false
ในเอาต์พุตตัวอย่างด้านบน โปรดทราบว่าพร็อพเพอร์ตี้
jsse.enableSNIExtension
ได้รับการอัปเดตเป็นค่าใหม่true
หรือfalse
ในsystem.properties
ซึ่งหมายความว่า SNI ได้เปิดใช้งานเรียบร้อยแล้ว หรือ ปิดใช้งานในโปรแกรมประมวลผลข้อความ -
หากคุณยังเห็นค่าเดิมของพร็อพเพอร์ตี้
jsse.enableSNIExtension
อยู่ ให้ทําดังนี้ ตรวจสอบว่าคุณได้ทำตามขั้นตอนทั้งหมดที่ระบุไว้ในส่วนที่เหมาะสมเพื่อเปิดใช้ หรือปิดใช้ SNI อย่างถูกต้อง หากคุณพลาดขั้นตอนใดไป ให้ทำขั้นตอนทั้งหมดซ้ำให้ถูกต้อง - หากคุณยังคงไม่สามารถเปิด/ปิดใช้งาน SNI โปรดติดต่อ การสนับสนุน Apigee Edge