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

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

เอกสารนี้มีภาพรวมของวิธีกำหนดค่า TLS ใน Edge สำหรับ 2 ฟังก์ชันการทำงาน ดังนี้

  1. สิทธิ์เข้าถึงพร็อกซี API ของไคลเอ็นต์ API ใช้โฮสต์เสมือนในเราเตอร์ Edge เพื่อกำหนดค่า TLS
  2. สิทธิ์เข้าถึงบริการแบ็กเอนด์โดย Edge ใช้ปลายทางเป้าหมายและเซิร์ฟเวอร์เป้าหมายใน Edge Message Processor เพื่อกำหนดค่า 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> ใช้

องค์ประกอบ คำอธิบาย
<Enabled>

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

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

<ClientAuthEnabled>

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

โดยทั่วไปแล้ว การเปิดใช้ TLS แบบ 2 ทางกำหนดให้คุณตั้งค่าที่เก็บข้อมูลที่เชื่อถือใน Edge

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

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

เมื่อใช้กับปลายทาง/เซิร์ฟเวอร์เป้าหมาย หากระบบแบ็กเอนด์ใช้ 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>

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

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

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

  • myKeystoreRef คือข้อมูลอ้างอิงที่มีชื่อของที่เก็บคีย์ ในตัวอย่างนี้ ชื่อของคีย์สโตร์คือ myKeystore
  • myTruststoreRef คือข้อมูลอ้างอิงที่มีชื่อของไฟล์เก็บข้อมูลเชื่อถือ ในตัวอย่างนี้ ชื่อของคลังความน่าเชื่อถือคือ myTruststore

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

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

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

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

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

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

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

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

ข้อจํากัดในการใช้การอ้างอิงถึงคีย์สโตร์และทรัสต์สโตร์

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

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

หากโฮสต์เสมือนที่มีอยู่ใช้ชื่อคีย์สโตร์หรือคลังเก็บข้อมูลที่ตรงตามตัวอักษร

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

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

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

  2. Edge สําหรับ Private Cloud

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

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

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

หากมีบัญชี Edge for 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>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

สําหรับที่เก็บข้อมูลเชื่อถือ ให้สร้างที่เก็บข้อมูลเชื่อถือที่มีชื่อใหม่

อัปเดตการอ้างอิงไปยังคีย์สโตร์หรือคลังความน่าเชื่อถือ

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

อัปเดตการอ้างอิงไปยังคีย์สโตร์หรือคลังความน่าเชื่อถือ

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

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

สําหรับที่เก็บข้อมูลเชื่อถือ ให้สร้างที่เก็บข้อมูลเชื่อถือที่มีชื่อใหม่

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

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

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

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

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

หากปลายทาง/เซิร์ฟเวอร์เป้าหมายใช้ที่เก็บข้อมูลเชื่อถือ ให้ติดตั้งใช้งานพร็อกซีอีกครั้ง

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

หากปลายทาง/เซิร์ฟเวอร์เป้าหมายใช้ที่เก็บข้อมูลเชื่อถือ ให้ติดตั้งใช้งานพร็อกซีอีกครั้ง

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

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

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

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

โดยตรง สําหรับที่เก็บข้อมูลเชื่อถือเท่านั้น ให้อัปโหลดใบรับรองใหม่ไปยังที่เก็บข้อมูลเชื่อถือ หากโฮสต์เสมือนใช้ที่เก็บข้อมูลเชื่อถือ ให้รีสตาร์ทเราเตอร์

หากปลายทาง/เซิร์ฟเวอร์เป้าหมายใช้ที่เก็บข้อมูลเชื่อถือ ให้รีสตาร์ทโปรแกรมประมวลผลข้อความ

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

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