การกําหนดค่า TLS จาก Edge ไปยังแบ็กเอนด์ (Cloud และ Private Cloud)

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

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

TargetEndpoint เป็นค่าขาออกที่เทียบเท่ากับ ProxyEndpoint ฟังก์ชัน TargetEndpoint เป็นไคลเอ็นต์ HTTP จาก Edge ไปยังบริการแบ็กเอนด์ เมื่อสร้างพร็อกซี API คุณสามารถกำหนดค่า เพื่อใช้ TargetEndpoints 0 ศูนย์หรือมากกว่า

ดูข้อมูลเพิ่มเติม

กำหนดค่า TargetEndpoint หรือ TargetServer

หากต้องการกำหนดค่า TargetEndpoint ให้แก้ไขออบเจ็กต์ XML ที่กำหนด TargetEndpoint คุณสามารถ ให้แก้ไข TargetEndpoint โดยแก้ไขไฟล์ XML ที่ระบุ TargetEndpoint ใน พร็อกซี API หรือแก้ไขใน UI การจัดการ Edge

วิธีใช้ UI การจัดการ Edge เพื่อแก้ไข TargetEndpoint

  1. เข้าสู่ระบบ UI การจัดการ Edge ที่ https://enterprise.apigee.com
  2. เลือกชื่อพร็อกซี API ที่จะอัปเดต
  3. เลือกแท็บพัฒนา
  4. ในส่วน Target Endpoints (ปลายทางเป้าหมาย) ให้เลือก default
  5. ในส่วนโค้ด คำจำกัดความของ TargetEndpoint จะปรากฏขึ้นคล้ายกับด้านล่างนี้
    <TargetEndpoint name="default">
      <Description/>
      <FaultRules/>
      <Flows/>
      <PreFlow name="PreFlow">
        <Request/>
        <Response/>
      </PreFlow>
      <PostFlow name="PostFlow">
        <Request/>
        <Response/>
      </PostFlow>
      <HTTPTargetConnection>
        <Properties/>
        <SSLInfo>
          <Enabled>true</Enabled>
          <TrustStore>ref://myTrustStoreRef</TrustStore>
        </SSLInfo>
        <URL>https://mocktarget.apigee.net</URL>
      </HTTPTargetConnection>
    </TargetEndpoint>
  6. กำหนดค่า Truststore ตามที่อธิบายไว้ด้านล่างใน เกี่ยวกับการกำหนดค่า TLS ด้วยแบ็กเอนด์
  7. ทำการเปลี่ยนแปลงและบันทึกพร็อกซี หากมีการทำให้พร็อกซี API ใช้งานได้ ให้บันทึกพร็อกซีดังกล่าว ทำซ้ำอีกครั้งโดยใช้การตั้งค่าใหม่

โปรดทราบว่าคำจำกัดความของ TargetEndpoint มีพร็อพเพอร์ตี้ name คุณใช้มูลค่า พร็อพเพอร์ตี้ name เพื่อกำหนดค่าการกำหนด ProxyEndpoint ของพร็อกซี API เพื่อใช้พร็อพเพอร์ตี้ TargetEndpoint โปรดดูข้อมูลเพิ่มเติมในข้อมูลอ้างอิงการกำหนดค่าพร็อกซี API

สามารถกำหนดค่า TargetEndpoints ให้อ้างอิง TargetServer แทนที่จะเป็น URL เป้าหมาย การกำหนดค่า TargetServer จะแยก URL ปลายทางที่เป็นรูปธรรมออกจาก การกำหนดค่า TargetEndpoint ใช้ TargetServers เพื่อรองรับการจัดสรรภาระงานและเฟลโอเวอร์ ในอินสแตนซ์เซิร์ฟเวอร์แบ็กเอนด์หลายรายการ

ด้านล่างนี้เป็นตัวอย่างของคำจำกัดความของ TargetServer

<TargetServer name="target1">
  <Host>mocktarget.apigee.net</Host>
  <Port>80</Port>
  <IsEnabled>true</IsEnabled>
</TargetServer> 

มีการอ้างอิง TargetServer ตามชื่อใน <HTTPTargetConnection> ในคำจำกัดความของ TargetEndpoint คุณกำหนดค่า TargetServers อย่างน้อย 1 รายการได้ดังที่แสดงด้านล่าง

<TargetEndpoint name="default">
  ...
  <HTTPTargetConnection>
    <LoadBalancer>
      <Server name="target1" />
      <Server name="target2" />
    </LoadBalancer>
    <Path>/test</Path>
  </HTTPTargetConnection>
  ...
</TargetEndpoint>

ดูการจัดสรรภาระงาน ในเซิร์ฟเวอร์แบ็กเอนด์สำหรับข้อมูลเพิ่มเติม

เกี่ยวกับการกำหนดค่า TLS ด้วยแบ็กเอนด์

ก่อนที่จะกำหนดค่าการเข้าถึง TLS ไปยังแบ็กเอนด์ คุณควรทำความเข้าใจ คะแนน:

  1. โดยค่าเริ่มต้น Edge จะไม่ตรวจสอบใบรับรองแบ็กเอนด์ คุณต้องสร้าง Truststore เพื่อกำหนดค่า Edge เพื่อตรวจสอบใบรับรอง
  2. ใช้การอ้างอิงเพื่อระบุคีย์สโตร์หรือ Truststore ที่ Edge ใช้

เราได้อธิบายข้อควรพิจารณาทั้ง 2 ข้อไว้ด้านล่างนี้

การกำหนด Truststore เพื่อเปิดใช้การตรวจสอบใบรับรอง

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

  • ใบรับรองได้รับการลงนามโดย CA ที่เชื่อถือได้
  • ใบรับรองยังไม่หมดอายุ
  • ใบรับรองจะแสดงชื่อทั่วไป หากใช้ชื่อทั่วไป Edge จะไม่ตรวจสอบความถูกต้อง ว่าชื่อทั่วไปตรงกับชื่อโฮสต์ที่ระบุใน URL

หากต้องการกำหนดค่า Edge เพื่อตรวจสอบใบรับรองแบ็กเอนด์ คุณจะต้องทำดังนี้

  1. สร้าง Truststore บน Edge
  2. อัปโหลดใบรับรองหรือชุดใบรับรองของเซิร์ฟเวอร์ไปยัง Truststore หากใบรับรองเซิร์ฟเวอร์มีการลงนามโดยบุคคลที่สาม คุณจะต้องอัปโหลด ชุดใบรับรองที่สมบูรณ์ ซึ่งรวมถึงใบรับรอง CA ระดับรูท ไปยัง Truststore ไม่มี CA ที่เชื่อถือโดยปริยาย
  3. เพิ่ม Truststore ไปยังคําจํากัดความของ TargetEndpoint หรือ TargetServer

โปรดดู Keystores และ Truststores สำหรับข้อมูลเพิ่มเติม

เช่น

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
      <TrustStore>ref://myTrustStoreRef</TrustStore>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

การใช้ข้อมูลอ้างอิง ไปยังคีย์สโตร์หรือ Truststore

ตัวอย่างด้านล่างแสดงวิธีกำหนดค่า TargetEndpoint หรือ TargetServer เป็น รองรับ TLS ในการกำหนดค่า TLS คุณต้องระบุ Truststore และคีย์สโตร์เป็นส่วนหนึ่งของ คำจำกัดความของ TargetEndpoint หรือ TargetServer

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

การอ้างอิงไปยังคีย์สโตร์และ Truststore ใน คำจำกัดความของ TargetEndpoints หรือ TargetServer จะทำงานในลักษณะเดียวกัน สำหรับโฮสต์เสมือน

การแปลง TargetEndpoint หรือ TargetServer เพื่อใช้ข้อมูลอ้างอิง

คุณอาจมีคำจำกัดความของ TargetEndpoint หรือ TargetServer อยู่แล้ว ใช้ชื่อจริงของคีย์สโตร์และ Truststore วิธีแปลง TargetEndpoint หรือคําจํากัดความของ TargetServer เพื่อใช้การอ้างอิง

  1. อัปเดตคำจำกัดความของ TargetEndpoint หรือ TargetServer เพื่อใช้ข้อมูลอ้างอิง
  2. รีสตาร์ท Edge Message Processor ด้วยคำสั่งต่อไปนี้
    • สำหรับลูกค้า Public Cloud โปรดติดต่อฝ่ายสนับสนุนของ Apigee Edge เพื่อเริ่มโปรแกรมประมวลผลข้อความอีกครั้ง
    • สำหรับลูกค้า Private Cloud ให้รีสตาร์ทเครื่องมือประมวลผลข้อความ Edge 1 รายการ ต่อครั้ง
  3. ยืนยันว่า TargetEndpoint หรือ TargetServer ทำงานได้อย่างถูกต้อง

การกำหนดค่า TLS แบบทางเดียวไปยังแบ็กเอนด์ เซิร์ฟเวอร์

เมื่อใช้คำจำกัดความของ TargetEndpoint การกำหนดค่าการเข้าถึง TLS ทางเดียวจาก Edge (ไคลเอ็นต์ TLS) ไปยังเซิร์ฟเวอร์แบ็กเอนด์ (เซิร์ฟเวอร์ TLS) จะไม่มีการกําหนดค่าเพิ่มเติมใดๆ ใน Edge ใช่เลย ไปยังเซิร์ฟเวอร์แบ็กเอนด์เพื่อกำหนดค่า TLS อย่างถูกต้อง

คุณเพียงแค่ต้องตรวจสอบให้แน่ใจว่าองค์ประกอบ <URL> ใน คำจำกัดความของ TargetEndpoint อ้างอิงบริการแบ็กเอนด์ตามโปรโตคอล HTTPS และคุณ เปิดใช้งาน TLS:

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

หากใช้ TargetServer เพื่อกำหนดบริการแบ็กเอนด์ ให้เปิดใช้ TLS ในคำจำกัดความของ TargetServer

<TargetServer name="target1">
  <Host>mocktarget.apigee.net</Host>
  <Port>443</Port>
  <IsEnabled>true</IsEnabled>
  <SSLInfo>
    <Enabled>true</Enabled>
  </SSLInfo> 
</TargetServer> 

อย่างไรก็ตาม หากต้องการให้ Edge ตรวจสอบใบรับรองแบ็กเอนด์ คุณต้องสร้าง Truststore ที่มีใบรับรองแบ็กเอนด์หรือชุดใบรับรอง จากนั้นคุณระบุ Truststore ใน คำจำกัดความของ TargetEndpoint มีดังนี้

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
      <TrustStore>ref://myTrustStoreRef</TrustStore>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

หรือในคำจำกัดความของ TargetServer

<TargetServer name="target1">
  <Host>mockserver.apigee.net</Host>
  <Port>443</Port>
  <IsEnabled>true</IsEnabled>
  <SSLInfo>
    <Enabled>true</Enabled>
    <TrustStore>ref://myTrustStoreRef</TrustStore>
  </SSLInfo> 
</TargetServer>

วิธีกำหนดค่า TLS แบบทางเดียว

  1. หากต้องการตรวจสอบใบรับรองแบ็กเอนด์ ให้สร้าง Truststore บน Edge แล้วอัปโหลด ใบรับรองแบ็กเอนด์หรือเชน CA ตามที่อธิบายไว้ใน Keystores และ Truststore สำหรับตัวอย่างนี้ หากคุณต้องสร้าง Truststore ให้ตั้งชื่อ myTrustStore
  2. หากคุณสร้าง Truststore ให้ใช้การเรียก POST API ต่อไปนี้เพื่อสร้าง การอ้างอิงชื่อ myTrustStoreRef ไปยัง Truststore ที่คุณสร้าง ด้านบน:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
      -d '<ResourceReference name="myTrustStoreRef">
        <Refers>myTrustKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
      </ResourceReference>' -u email:password
    
  3. ใช้ UI การจัดการ Edge เพื่ออัปเดตคำจำกัดความของ TargetEndpoint สำหรับพร็อกซี API (หรือ ถ้าคุณกำหนดพร็อกซี API ใน XML ให้แก้ไขไฟล์ XML สำหรับพร็อกซี) ดังนี้
    1. ลงชื่อเข้าสู่ระบบ UI การจัดการ Edge ที่ https://enterprise.apigee.com
    2. ในเมนู UI การจัดการ Edge ให้เลือก API
    3. เลือกชื่อพร็อกซี API ที่จะอัปเดต
    4. เลือกแท็บการพัฒนา
    5. ในส่วน Target Endpoints (ปลายทางเป้าหมาย) ให้เลือก default
    6. ในพื้นที่โค้ด ให้แก้ไของค์ประกอบ <HTTPTargetConnection> เป็น เพิ่มองค์ประกอบ <SSLInfo> ตรวจสอบว่าได้ระบุการอ้างอิง Truststore ที่ถูกต้องและตั้งค่า <Enabled> เป็น "จริง" ดังนี้ วันที่
      <TargetEndpoint name="default">
        …
        <HTTPTargetConnection>
          <SSLInfo>
            <Enabled>true</Enabled>
            <TrustStore>ref://myTrustStoreRef</TrustStore>
          </SSLInfo>
          <URL>https://myservice.com</URL>
        </HTTPTargetConnection>
        …
      </TargetEndpoint>
    7. บันทึกพร็อกซี API หากมีการทำให้พร็อกซี API ใช้งานได้แล้ว การบันทึกจะเรียกใช้อีกครั้งด้วย การตั้งค่าใหม่

การกำหนดค่า TLS แบบ 2 ทางไปยังแบ็กเอนด์ เซิร์ฟเวอร์

หากต้องการรองรับ TLS แบบ 2 ทางระหว่าง Edge (ไคลเอ็นต์ TLS) และเซิร์ฟเวอร์แบ็กเอนด์ (TLS) เซิร์ฟเวอร์):

  • สร้างคีย์สโตร์ใน Edge แล้วอัปโหลดใบรับรอง Edge และคีย์ส่วนตัว
  • หากต้องการตรวจสอบใบรับรองแบ็กเอนด์ ให้สร้าง Truststore บน Edge ที่มี ใบรับรองและสาย CA ที่คุณได้รับจากเซิร์ฟเวอร์แบ็กเอนด์
  • อัปเดต TargetEndpoint ของพร็อกซี API ที่อ้างอิงเซิร์ฟเวอร์แบ็กเอนด์เพื่อกำหนดค่า การเข้าถึง TLS

การใช้ชื่อแทนคีย์เพื่อระบุใบรับรองคีย์สโตร์

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

นอกจากนี้ คุณยังกำหนดค่า Edge เพื่อใช้ใบรับรองที่พร็อพเพอร์ตี้ <KeyAlias> ระบุได้อีกด้วย ซึ่งจะช่วยให้คุณสามารถกำหนดคีย์สโตร์เดียวสำหรับใบรับรองหลายรายการ จากนั้น ให้เลือกเซิร์ฟเวอร์ที่ต้องการใช้ในการกำหนด TargetServer หาก Edge ไม่พบใบรับรองที่มีชื่อแทน ที่ตรงกับ <KeyAlias> ระบบจะใช้การดำเนินการเริ่มต้นในการเลือก ใบรับรองในคีย์สโตร์

Edge สำหรับผู้ใช้ Cloud สาธารณะต้องติดต่อฝ่ายสนับสนุนของ Apigee Edge เพื่อเปิดใช้ฟีเจอร์นี้

การกำหนดค่า TLS แบบ 2 ทาง

วิธีกำหนดค่า TLS แบบ 2 ทาง

  1. สร้างคีย์สโตร์ใน Edge แล้วอัปโหลดใบรับรองและคีย์ส่วนตัวโดยใช้กระบวนการ ตามที่อธิบายไว้ที่นี่: Keystores และ Truststores สำหรับตัวอย่างนี้ ให้สร้างคีย์สโตร์ชื่อ myTestKeystore ที่ใช้เอลิเมนต์ ชื่อแทนของ myKey สำหรับใบรับรองและคีย์ส่วนตัว
  2. ใช้การเรียก API ของ POST ต่อไปนี้เพื่อสร้างข้อมูลอ้างอิง ตั้งชื่อ myKeyStoreRef ไปยังคีย์สโตร์ที่คุณสร้างขึ้นด้านบน:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
    -d '<ResourceReference name="myKeyStoreRef">
        <Refers>myTestKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
    </ResourceReference>' -u email:password
    

    ข้อมูลอ้างอิงจะระบุชื่อของคีย์สโตร์และประเภทข้อมูลอ้างอิงเป็น KeyStore

    ใช้การเรียก GET API ต่อไปนี้เพื่อดูข้อมูลอ้างอิง

    curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/myKeyStoreRef /
    -u email:password
    
  3. หากต้องการตรวจสอบใบรับรองแบ็กเอนด์ ให้สร้าง Truststore บน Edge แล้วอัปโหลดใบรับรองและ CA ตามที่อธิบายไว้ที่นี่ Keystores และ Truststores ในตัวอย่างนี้ หากคุณต้องสร้าง Truststore ให้ตั้งชื่อเป็น myTrustStore
  4. หากคุณสร้าง Truststore ให้ใช้การเรียก POST API ต่อไปนี้เพื่อสร้าง การอ้างอิงชื่อ myTrustStoreRef ไปยัง Truststore ที่คุณสร้าง ด้านบน:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
    -d '<ResourceReference name="myTrustStoreRef">
        <Refers>myTrustKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
    </ResourceReference>' -u email:password
    
  5. ใช้ UI การจัดการ Edge เพื่ออัปเดตคำจำกัดความของ TargetEndpoint สำหรับพร็อกซี API (หรือ ถ้าคุณกำหนดพร็อกซี API ใน XML ให้แก้ไขไฟล์ XML สำหรับพร็อกซี) ดังนี้
    1. เข้าสู่ระบบ UI การจัดการ Edge ที่ https://enterprise.apigee.com
    2. ในเมนู UI การจัดการ Edge ให้เลือก API
    3. เลือกชื่อพร็อกซี API ที่จะอัปเดต
    4. เลือกแท็บการพัฒนา
    5. ในส่วน Target Endpoints (ปลายทางเป้าหมาย) ให้เลือก default
    6. ในพื้นที่โค้ด ให้แก้ไของค์ประกอบ <HTTPTargetConnection> เป็น เพิ่ม <SSLInfo> ตรวจสอบว่าได้ระบุคีย์สโตร์และชื่อแทนคีย์ที่ถูกต้อง และตั้งค่าทั้ง องค์ประกอบ <Enabled> และ <ClientAuthEnabled> เป็นจริง:
      <TargetEndpoint name="default">
        ...
        <HTTPTargetConnection>
          <SSLInfo>
            <Enabled>true</Enabled>
            <ClientAuthEnabled>true</ClientAuthEnabled>
            <KeyStore>ref://myKeyStoreRef</KeyStore>
            <KeyAlias>myKey</KeyAlias>
          </SSLInfo>
          <URL>https://myservice.com</URL>
        </HTTPTargetConnection>
        ...
      </TargetEndpoint>
    7. บันทึกพร็อกซี API หากมีการทำให้พร็อกซี API ใช้งานได้แล้ว การบันทึกจะเรียกใช้อีกครั้งด้วย การตั้งค่าใหม่

ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกที่มีอยู่ใน <TargetEndpoint> รวมถึงการใช้ตัวแปร ในการระบุค่า TargetEndpoint <SSLInfo> โปรดดูข้อมูลอ้างอิงการกำหนดค่าพร็อกซี API

การเปิดใช้ SNI

Edge รองรับการใช้ Server Name Replacement (SNI) จากผู้ประมวลผลข้อความเพื่อกำหนดเป้าหมาย ปลายทางใน Apigee Edge สำหรับ Cloud และการติดตั้งใช้งาน Private Cloud

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