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

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

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

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

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

<ClientAuthEnabled>

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

โดยปกติการเปิดใช้ TLS 2 ทางกำหนดให้คุณต้องตั้งค่า Trust Store ใน Edge

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

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

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

<CommonName>

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

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

Apigee สามารถจับคู่กับไวลด์การ์ดได้โดยใช้แอตทริบิวต์ wildcardMatch

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • คุณจะใช้ข้อมูลอ้างอิงคีย์สโตร์และ Trust Store ในโฮสต์เสมือนได้ก็ต่อเมื่อคุณยุติ TLS ใน Apigee Router
  • หากคุณมี Load Balancer อยู่หน้า Apigee Router และคุณยุติ TLS ใน Load Balancer คุณจะใช้ข้อมูลอ้างอิงคีย์สโตร์และ Trust Store ในโฮสต์เสมือนไม่ได้

กรณีที่โฮสต์เสมือนที่มีอยู่ใช้ชื่อคีย์สโตร์หรือ Trust Store แบบตามตัวอักษร

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

  1. Edge for the Cloud

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

  2. Edge for the Private Cloud

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

    1. อัปเดตโฮสต์เสมือนให้ใช้ข้อมูลอ้างอิง
    2. รีสตาร์ทเราเตอร์
    ดูข้อมูลเพิ่มเติมได้ที่ "การแก้ไขโฮสต์เสมือนให้ใช้ข้อมูลอ้างอิงไปยังคีย์สโตร์และ Trust Store" ในการกำหนดค่าการเข้าถึง 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 และระบุ Trust Store โดยใช้ ข้อมูลอ้างอิง กับองค์ประกอบ <TrustStore>

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

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

ปัจจัยหลัก 2 ข้อที่กำหนดวิธีที่คุณกำหนดค่า TLS ได้แก่

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

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

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

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

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

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

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

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

สิ่งที่จะเกิดขึ้นเมื่อใบรับรองหมดอายุ

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

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

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

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

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

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

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

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

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

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

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

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

อัปเดตข้อมูลอ้างอิงไปยังคีย์สโตร์หรือ Trust Store

ไม่จำเป็นต้องรีสตาร์ทเราเตอร์หรือ Message Processor

อัปเดตข้อมูลอ้างอิงไปยังคีย์สโตร์หรือ Trust Store

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

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

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

ส่งตัวแปรโฟลว์ที่อัปเดตในทุกคำขอพร้อมชื่อคีย์สโตร์ ชื่อแทน หรือ Trust Store ใหม่

ไม่จำเป็นต้องรีสตาร์ทเราเตอร์หรือ Message Processor

ส่งตัวแปรโฟลว์ที่อัปเดตในทุกคำขอพร้อมชื่อคีย์สโตร์ ชื่อแทน หรือ Trust Store ใหม่

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

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

หากปลายทางเป้าหมาย/เซิร์ฟเวอร์เป้าหมายใช้ Trust Store ให้ปรับใช้พร็อกซีอีกครั้ง

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

หากปลายทางเป้าหมาย/เซิร์ฟเวอร์เป้าหมายใช้ Trust Store ให้ปรับใช้พร็อกซีอีกครั้ง

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

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

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

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

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

หากปลายทางเป้าหมาย/เซิร์ฟเวอร์เป้าหมายใช้ Trust Store ให้รีสตาร์ท Message Processor

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

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