ตัวเลือกในการกําหนดค่า TLS

คุณกำลังดูเอกสาร Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
ข้อมูล

เอกสารนี้มีภาพรวมเกี่ยวกับวิธีกำหนดค่า TLS บน Edge สำหรับพื้นที่ทำงาน 2 พื้นที่ดังนี้

  1. การเข้าถึงพร็อกซี API โดยไคลเอ็นต์ API ใช้โฮสต์เสมือนบนเราเตอร์ Edge เพื่อกำหนดค่า TLS
  2. การเข้าถึงบริการแบ็กเอนด์ของคุณตาม Edge ใช้ปลายทางและเซิร์ฟเวอร์เป้าหมายบนตัวประมวลผล Edge Message เพื่อกำหนดค่า TLS

การเข้าถึงทั้ง 2 ประเภทแสดงไว้ด้านล่างนี้

เกี่ยวกับการตั้งค่าตัวเลือก TLS ในโฮสต์เสมือนหรือเซิร์ฟเวอร์ปลายทาง/เป้าหมายปลายทาง

โฮสต์เสมือนสามารถแสดงด้วยออบเจ็กต์ XML ในรูปแบบต่อไปนี้

<VirtualHost name="secure">
    ...
    <SSLInfo> 
        <Enabled>true</Enabled> 
        <ClientAuthEnabled>true</ClientAuthEnabled> 
        <KeyStore>ref://myKeystoreRef</KeyStore> 
        <KeyAlias>myKeyAlias</KeyAlias> 
        <TrustStore>ref://myTruststoreRef</TrustStore> 
        <IgnoreValidationErrors>false</IgnoreValidationErrors>
    </SSLInfo>
</VirtualHost>

พื้นที่ของโฮสต์เสมือนที่คุณแก้ไขเพื่อกำหนดค่า TLS จะกำหนดโดยแท็ก <SSLInfo> คุณใช้แท็ก <SSLInfo> เดียวกันเพื่อกำหนดค่าปลายทางหรือเซิร์ฟเวอร์เป้าหมายได้

ตารางต่อไปนี้อธิบายองค์ประกอบการกำหนดค่า TLS ที่แท็ก <SSLInfo> ใช้

องค์ประกอบ คำอธิบาย
<เปิดใช้>

เปิดใช้ TLS แบบทางเดียวระหว่าง Edge และไคลเอ็นต์ API หรือระหว่าง Edge กับแบ็กเอนด์เป้าหมาย

สำหรับโฮสต์เสมือน คุณต้องกำหนดคีย์สโตร์ที่มีใบรับรองและคีย์ส่วนตัว

<ClientAuthEnabled>

เปิดใช้ TLS แบบ 2 ทางระหว่าง Edge และไคลเอ็นต์ API หรือระหว่าง Edge กับแบ็กเอนด์เป้าหมาย

โดยปกติแล้ว การเปิดใช้ TLS แบบ 2 ทางกำหนดให้คุณต้องตั้งค่า Truststore ใน Edge

<KeyStore> คีย์สโตร์
<KeyAlias> ชื่อแทนที่ระบุเมื่อคุณอัปโหลดใบรับรองและคีย์ส่วนตัวไปยังคีย์สโตร์
<TrustStore> Truststore
<IgnoreValidationErrors>

หากเป็น "จริง" Edge จะไม่พบข้อผิดพลาดเกี่ยวกับใบรับรอง TLS ใช้ได้เมื่อกำหนดค่า TLS สำหรับเซิร์ฟเวอร์เป้าหมายและปลายทางเป้าหมาย และเมื่อกำหนดค่าโฮสต์เสมือนที่ใช้ TLS แบบ 2 ทาง ค่าเริ่มต้นคือ false

เมื่อใช้กับเซิร์ฟเวอร์ปลายทาง/เป้าหมาย หากระบบแบ็กเอนด์ใช้ SNI และแสดงผลใบรับรองที่มีหัวเรื่อง Distinguished Name (DN) ที่ไม่ตรงกับชื่อโฮสต์ จะไม่มีทางละเว้นข้อผิดพลาดและการเชื่อมต่อล้มเหลวได้

<CommonName>

หากระบุ ระบบจะตรวจสอบค่าที่ใช้ตรวจสอบชื่อจริงของใบรับรองเป้าหมาย ค่านี้ใช้ได้กับการกำหนดค่า TargetEndpoint และ TargetServer เท่านั้น ซึ่งใช้ไม่ได้กับการกำหนดค่า VirtualHost

โดยค่าเริ่มต้น ค่าที่ระบุจะตรงกับชื่อทั่วไปของใบรับรองเป้าหมายทุกประการ เช่น การใช้ *.myhost.com เป็นค่าสำหรับ <CommonName> จะจับคู่และตรวจสอบชื่อโฮสต์เป้าหมายหากมีการระบุค่า *.myhost.com ที่ตรงกันเป็นชื่อทั่วไปในใบรับรองเป้าหมายเท่านั้น

นอกจากนี้ Apigee ยังเลือกดำเนินการจับคู่กับไวลด์การ์ดได้โดยใช้แอตทริบิวต์ wildcardMatch

เช่น ระบบจะจับคู่และตรวจสอบชื่อทั่วไปที่ระบุเป็น abc.myhost.com ในใบรับรองเป้าหมาย หากมีการระบุองค์ประกอบ <CommonName> ดังนี้

<CommonName wildcardMatch="true">*.myhost.com</CommonName>

เกี่ยวกับการตั้งค่าองค์ประกอบ <KeyStore> และ <TrustStore>

ในตัวอย่างโฮสต์เสมือนข้างต้น จะมีการระบุคีย์สโตร์และ Truststore โดยใช้referencesในแบบฟอร์ม

<KeyStore>ref://myKeystoreRef</KeyStore>
<TrustStore>ref://myTruststoreRef</TrustStore>

Apigee ขอแนะนำอย่างยิ่งให้คุณใช้การอ้างอิงไปยังคีย์สโตร์และ Truststore เสมอ การอ้างอิงคือตัวแปรที่มีชื่อของคีย์สโตร์หรือ Truststore แทนการระบุชื่อคีย์สโตร์โดยตรง ในตัวอย่างนี้

  • myKeystoreRef คือข้อมูลอ้างอิงที่มีชื่อของคีย์สโตร์ ในตัวอย่างนี้ ชื่อของคีย์สโตร์คือ myKeystore
  • myTruststoreRef คือข้อมูลอ้างอิงที่มีชื่อของ Truststore ในตัวอย่างนี้ ชื่อของ Truststore คือ myTruststore

เมื่อใบรับรองหมดอายุ คุณต้องอัปเดตโฮสต์เสมือนหรือเซิร์ฟเวอร์ปลายทาง/ปลายทางเป้าหมายเพื่อระบุคีย์สโตร์หรือ Truststore ที่มีใบรับรองใหม่ ข้อดีของข้อมูลอ้างอิงคือคุณสามารถแก้ไขค่าของข้อมูลอ้างอิงเพื่อเปลี่ยนคีย์สโตร์หรือ Truststore โดยไม่ต้องแก้ไขโฮสต์เสมือน หรือปลายทาง/เซิร์ฟเวอร์เป้าหมายเป้าหมายด้วยตัวเอง ดังนี้

  • สำหรับลูกค้า Cloud: คุณไม่จำเป็นต้องติดต่อทีมสนับสนุนของ Apigee Edge ในการเปลี่ยนค่าของข้อมูลอ้างอิง
  • สำหรับลูกค้า Private Cloud: การเปลี่ยนค่าข้อมูลอ้างอิงไม่ได้กำหนดให้คุณต้องรีสตาร์ทคอมโพเนนต์ Edge เช่น เราเตอร์และผู้ประมวลผลข้อความ

หรือจะระบุชื่อคีย์สโตร์และชื่อ Truststore โดยตรงก็ได้

<KeyStore>myKeystore</KeyStore>
<TrustStore>myTruststore</TrustStore> 

หากคุณระบุชื่อคีย์สโตร์หรือ Truststore โดยตรง ลูกค้า Cloud ต้องติดต่อทีมสนับสนุน Apigee Edge และลูกค้า Private Cloud จะต้องรีสตาร์ทคอมโพเนนต์ Edge บางรายการเพื่ออัปเดตใบรับรอง

ตัวเลือกที่ 3 สำหรับปลายทาง/เซิร์ฟเวอร์เป้าหมายเท่านั้น คือการใช้ตัวแปรโฟลว์

<KeyStore>{ssl.keystore}</KeyStore>
<TrustStore>{ssl.truststore}</TrustStore> 

ตัวแปรโฟลว์ใช้งานได้กับปลายทาง/เซิร์ฟเวอร์เป้าหมาย และให้คุณอัปเดตคีย์สโตร์หรือ Truststore ได้เหมือนกับการอ้างอิง แต่จะใช้ไม่ได้กับโฮสต์เสมือน และกำหนดให้คุณต้องส่งต่อข้อมูลเกี่ยวกับคีย์สโตร์ ชื่อแทน และ Truststore ทุกครั้งที่ส่งคำขอ

ข้อจำกัดในการใช้การอ้างอิงไปยังคีย์สโตร์และ Truststore

ลูกค้าระบบคลาวด์แบบชำระเงินและลูกค้า Private Cloud ทุกรายที่กำหนดค่า TLS จะต้องคำนึงถึงข้อจำกัดต่อไปนี้เมื่อใช้การอ้างอิงไปยังคีย์สโตร์และ Truststore

  • คุณจะใช้การอ้างอิงคีย์สโตร์และ Truststore ในโฮสต์เสมือนได้ก็ต่อเมื่อสิ้นสุด TLS บนเราเตอร์ Apigee
  • หากคุณมีตัวจัดสรรภาระงานอยู่หน้าเราเตอร์ Apigee และสิ้นสุด TLS ในตัวจัดสรรภาระงาน คุณจะใช้การอ้างอิงคีย์สโตร์และ Truststore ในโฮสต์เสมือนไม่ได้

หากโฮสต์เสมือนที่มีอยู่ของคุณใช้คีย์สโตร์หรือชื่อ Truststore

โฮสต์เสมือนที่มีอยู่ใน Edge อาจไม่ได้รับการกำหนดค่าให้ใช้การอ้างอิงสำหรับคีย์สโตร์และ Truststore ในกรณีนี้ คุณสามารถอัปเดตโฮสต์เสมือนเพื่อใช้ข้อมูลอ้างอิง

  1. Edge สำหรับระบบคลาวด์

    หากต้องการเปลี่ยนโฮสต์เสมือนให้ใช้การอ้างอิงไปยังคีย์สโตร์ คุณต้องทำงานร่วมกับทีมสนับสนุนของ Apigee Edge

  2. Edge สำหรับ Private Cloud

    วิธีแปลงโฮสต์เสมือนเพื่อใช้ข้อมูลอ้างอิง

    1. อัปเดตโฮสต์เสมือนเพื่อใช้ข้อมูลอ้างอิง
    2. รีสตาร์ทเราเตอร์
    ดูข้อมูลเพิ่มเติมได้ที่ "การแก้ไขโฮสต์เสมือนเพื่อใช้การอ้างอิงไปยังคีย์สโตร์และ Truststore" ในหัวข้อการกำหนดค่าการเข้าถึง TLS ไปยัง API สำหรับ Private Cloud

เกี่ยวกับการใช้ใบรับรองและคีย์ช่วงทดลองใช้ Apigee ฟรี

หากมี Edge แบบชำระเงินสำหรับบัญชี Cloud แต่ยังไม่มีใบรับรองและคีย์ TLS คุณจะสร้างโฮสต์เสมือนที่ใช้ใบรับรองและคีย์ช่วงทดลองใช้ Apigee ฟรีได้ ซึ่งหมายความว่าคุณจะสร้างโฮสต์เสมือนได้โดยไม่ต้องสร้างคีย์สโตร์ก่อน

ออบเจ็กต์ XML ที่กำหนดโฮสต์เสมือนโดยใช้ใบรับรองการทดลองใช้ Apigee ฟรีและคีย์จะข้ามองค์ประกอบ <KeyStore> และ <KeyAlias> และแทนที่ด้วยองค์ประกอบ <UseBuiltInFreeTrialCert> ดังที่แสดงด้านล่าง

<VirtualHost name="myTLSVHost">
    <HostAliases>
        <HostAlias>myapi.apigee.net</HostAlias>
    </HostAliases>
    <Port>443</Port>
    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>false</ClientAuthEnabled>
    </SSLInfo>
    <UseBuiltInFreeTrialCert>true</UseBuiltInFreeTrialCert>
</VirtualHost>

หากใช้ TLS แบบ 2 ทาง คุณยังคงต้องตั้งค่าองค์ประกอบ <ClientAuthEnabled> เป็น true และระบุ Truststore โดยใช้การอ้างอิงที่มีองค์ประกอบ <TrustStore>

โปรดดูการกำหนดค่าโฮสต์เสมือนสำหรับระบบคลาวด์สำหรับข้อมูลเพิ่มเติม

เกี่ยวกับการกำหนดค่า TLS

ปัจจัยหลัก 2 ประการที่กำหนดวิธีการกำหนดค่า TLS มีดังนี้

  • คุณเป็นลูกค้า Edge Cloud หรือ Private Cloud
  • คุณจะอัปเดตใบรับรองที่หมดอายุหรือหมดอายุแล้วอย่างไร

ตัวเลือกการกำหนดค่า Cloud และ Private Cloud

ตารางต่อไปนี้แสดงตัวเลือกการกำหนดค่าที่แตกต่างกันสำหรับลูกค้า Cloud และ Private Cloud

Private Cloud Cloud
โฮสต์เสมือน ควบคุมได้ดั่งใจ ควบคุมได้โดยสมบูรณ์สำหรับบัญชีแบบชำระเงินเท่านั้น
เซิร์ฟเวอร์ปลายทาง/เป้าหมาย ควบคุมได้ดั่งใจ ควบคุมได้ดั่งใจ

ลูกค้า Private Cloud สามารถควบคุมการกำหนดค่าของทั้งโฮสต์เสมือนและปลายทาง/เซิร์ฟเวอร์เป้าหมายเป้าหมายได้อย่างสมบูรณ์ การควบคุมดังกล่าวรวมถึงความสามารถในการสร้างและลบโฮสต์เสมือน และตั้งค่าพร็อพเพอร์ตี้ทั้งหมดในโฮสต์เสมือน

ลูกค้า Cloud ทุกคนทั้งแบบชำระเงินและผ่านการประเมินจะมีสิทธิ์ควบคุมการกำหนดค่าปลายทาง/เซิร์ฟเวอร์เป้าหมายอย่างสมบูรณ์ นอกจากนี้ ลูกค้า Cloud แบบชำระเงินยังควบคุมโฮสต์เสมือน รวมถึงพร็อพเพอร์ตี้ TLS ได้อย่างสมบูรณ์

การจัดการใบรับรองที่หมดอายุแล้ว

หากใบรับรอง TLS หมดอายุหรือการกำหนดค่าระบบเปลี่ยนแปลงจนทำให้ใบรับรองใช้ไม่ได้อีกต่อไป คุณจะต้องอัปเดตใบรับรอง เมื่อกำหนดค่า TLS สำหรับโฮสต์เสมือนหรือเซิร์ฟเวอร์ปลายทาง/เป้าหมายเป้าหมาย คุณควรตัดสินใจวิธีอัปเดตดังกล่าวก่อนที่จะกำหนดค่าใดๆ

เมื่อใบรับรองหมดอายุ

ใน Edge คุณจะจัดเก็บใบรับรองไว้ที่ 1 ใน 2 ที่ต่อไปนี้

  • คีย์สโตร์ - มีใบรับรอง TLS และคีย์ส่วนตัวที่ใช้ระบุเอนทิตีระหว่างแฮนด์แฮนด์ TLS
  • Truststore - มีใบรับรองที่เชื่อถือได้บนไคลเอ็นต์ TLS ที่ใช้ตรวจสอบใบรับรองของเซิร์ฟเวอร์ TLS ที่แสดงต่อไคลเอ็นต์ โดยทั่วไปใบรับรองเหล่านี้จะเป็นใบรับรองแบบ Self-signed ใบรับรองที่ลงชื่อโดย CA ที่เชื่อถือได้ หรือใบรับรองที่ใช้เป็นส่วนหนึ่งของ TLS แบบ 2 ทาง

เมื่อใบรับรองในคีย์สโตร์หมดอายุ และคุณกำลังใช้การอ้างอิงไปยังคีย์สโตร์ คุณจะอัปโหลดใบรับรองใหม่ไปยังคีย์สโตร์ไม่ได้ แต่คุณจะทำสิ่งต่อไปนี้แทน

  1. สร้างคีย์สโตร์ใหม่
  2. อัปโหลดใบรับรองใหม่ไปยังคีย์สโตร์ใหม่โดยใช้ชื่อแทนเดียวกันเหมือนในคีย์สโตร์เดิม
  3. อัปเดตข้อมูลอ้างอิงในโฮสต์เสมือนหรือปลายทางเซิร์ฟเวอร์/ปลายทางเป้าหมายเพื่อใช้คีย์สโตร์ใหม่

เมื่อใบรับรองใน Truststore หมดอายุและคุณใช้การอ้างอิงไปยัง Truststore คุณจะทำสิ่งต่อไปนี้

  1. สร้าง Truststore ใหม่
  2. อัปโหลดใบรับรองใหม่ไปยัง Truststore ใหม่ ชื่อแทนนี้ไม่สำคัญสำหรับ Truststore หมายเหตุ: หากใบรับรองเป็นส่วนหนึ่งของเชน คุณต้องสร้างไฟล์เดียวที่มีใบรับรองทั้งหมด แล้วอัปโหลดไฟล์นั้นไปยังชื่อแทนเดียว หรืออัปโหลดใบรับรองทั้งหมดในเชนแยกต่างหากไปยัง Truststore โดยใช้ชื่อแทนอื่นสำหรับใบรับรองแต่ละรายการ
  3. อัปเดตข้อมูลอ้างอิงในโฮสต์เสมือนหรือปลายทางเซิร์ฟเวอร์/ปลายทางเป้าหมายเพื่อใช้ Truststore ใหม่

สรุปวิธีอัปเดตใบรับรองที่หมดอายุ

เมธอดที่คุณใช้ระบุชื่อของคีย์สโตร์และ Truststore ในโฮสต์เสมือนหรือเซิร์ฟเวอร์ปลายทาง/ปลายทางเป้าหมายจะกำหนดวิธีที่คุณอัปเดตใบรับรอง คุณสามารถใช้สิ่งต่อไปนี้

  • รายการอ้างอิง
  • ชื่อโดยตรง
  • ตัวแปรโฟลว์

ซึ่งแต่ละวิธีล้วนส่งผลต่อกระบวนการอัปเดตที่แตกต่างกัน ดังที่อธิบายไว้ในตารางต่อไปนี้ คุณจะเห็นได้ว่าข้อมูลอ้างอิงให้ความยืดหยุ่นสูงสุดสำหรับทั้งลูกค้า Cloud และ Private Cloud ดังนี้

ประเภทการกำหนดค่า วิธีอัปเดต/แทนที่ใบรับรอง Private Cloud Cloud
ข้อมูลอ้างอิง (แนะนำ) สำหรับคีย์สโตร์ ให้สร้างคีย์สโตร์ใหม่ด้วยชื่อใหม่ และชื่อแทนที่มีชื่อเดียวกันกับชื่อแทนเดิม

สำหรับ Truststore ให้สร้าง Truststore ด้วยชื่อใหม่

อัปเดตการอ้างอิงไปยังคีย์สโตร์หรือ Truststore

ไม่จำเป็นต้องรีสตาร์ทเราเตอร์หรือตัวประมวลผลข้อความ

อัปเดตการอ้างอิงไปยังคีย์สโตร์หรือ Truststore

ไม่จำเป็นต้องติดต่อทีมสนับสนุนของ Apigee

โฟลว์ตัวแปร (ปลายทางเป้าหมายเท่านั้น) สำหรับคีย์สโตร์ ให้สร้างคีย์สโตร์ใหม่ด้วยชื่อใหม่ และชื่อแทนที่มีชื่อเดียวกันหรือด้วยชื่อใหม่

สำหรับ Truststore ให้สร้าง Truststore ด้วยชื่อใหม่

ส่งตัวแปรขั้นตอนที่อัปเดตในคำขอแต่ละรายการด้วยชื่อของคีย์สโตร์ ชื่อแทน หรือ Truststore ใหม่

ไม่จำเป็นต้องรีสตาร์ทเราเตอร์หรือตัวประมวลผลข้อความ

ส่งตัวแปรขั้นตอนที่อัปเดตในคำขอแต่ละรายการด้วยชื่อของคีย์สโตร์ ชื่อแทน หรือ Truststore ใหม่

ไม่จำเป็นต้องติดต่อทีมสนับสนุนของ Apigee

Direct สร้างคีย์สโตร์, ชื่อแทน, Truststore ใหม่ อัปเดตโฮสต์เสมือนและรีสตาร์ทเราเตอร์

หากเซิร์ฟเวอร์ปลายทาง/ปลายทางเป้าหมายใช้ Truststore ให้ทำให้พร็อกซีใช้งานได้อีกครั้ง

สำหรับโฮสต์เสมือน โปรดติดต่อทีมสนับสนุนของ Apigee Edge เพื่อรีสตาร์ทเราเตอร์

หากเซิร์ฟเวอร์ปลายทาง/ปลายทางเป้าหมายใช้ Truststore ให้ทำให้พร็อกซีใช้งานได้อีกครั้ง

Direct ลบคีย์สโตร์หรือ Truststore แล้วสร้างใหม่ด้วยชื่อเดียวกัน ไม่จำเป็นต้องอัปเดตโฮสต์เสมือน ไม่จำเป็นต้องรีสตาร์ทเราเตอร์ อย่างไรก็ตาม คำขอ API จะล้มเหลวจนกว่าจะมีการกำหนดคีย์สโตร์และชื่อแทนใหม่

หากมีการใช้คีย์สโตร์สำหรับ TLS แบบ 2 ทางระหว่าง Edge และบริการแบ็กเอนด์ ให้รีสตาร์ท ตัวประมวลผลข้อความ

ไม่ต้องอัปเดตโฮสต์เสมือน อย่างไรก็ตาม คำขอ API จะล้มเหลวจนกว่าจะมีการกำหนดคีย์สโตร์และชื่อแทนใหม่

หากมีการใช้คีย์สโตร์สำหรับ TLS แบบ 2 ทางระหว่าง Edge และบริการแบ็กเอนด์ โปรดติดต่อทีมสนับสนุนของ Apigee Edge เพื่อรีสตาร์ทตัวประมวลผลข้อความ

Direct สำหรับ Truststore เท่านั้น ให้อัปโหลดใบรับรองใหม่ไปยัง Truststore หากโฮสต์เสมือนใช้ Truststore ให้รีสตาร์ทเราเตอร์

หากเซิร์ฟเวอร์ปลายทาง/เป้าหมายเป้าหมายใช้ Truststore ให้รีสตาร์ทตัวประมวลผลข้อความ

สำหรับโฮสต์เสมือน โปรดติดต่อทีมสนับสนุนของ Apigee Edge เพื่อรีสตาร์ทเราเตอร์ Edge

หากเซิร์ฟเวอร์ปลายทาง/เป้าหมายใช้ Truststore โปรดติดต่อทีมสนับสนุนของ Apigee Edge เพื่อรีสตาร์ทตัวประมวลผลข้อความ