การกําหนดค่า TLS สําหรับ UI การจัดการ

โดยค่าเริ่มต้น คุณจะเข้าถึง Edge UI ผ่าน HTTP ได้โดยใช้ที่อยู่ IP ของ โหนดเซิร์ฟเวอร์การจัดการและพอร์ต 9000 เช่น

http://ms_IP:9000

อีกทางเลือกหนึ่งคือกำหนดค่าการเข้าถึง TLS ใน Edge UI เพื่อให้สามารถเข้าถึงได้ แบบฟอร์ม:

https://ms_IP:9443

ในตัวอย่างนี้ คุณได้กำหนดค่าการเข้าถึง TLS เพื่อใช้พอร์ต 9443 แต่หมายเลขพอร์ตดังกล่าวไม่ใช่ Edge ต้องใช้ - คุณสามารถกำหนดค่าเซิร์ฟเวอร์การจัดการให้ใช้ค่าพอร์ตอื่น มีเพียง นั่นคือไฟร์วอลล์ของคุณอนุญาตให้มีการรับส่งข้อมูลผ่านพอร์ตที่ระบุ

ตรวจสอบว่าพอร์ต TLS เปิดอยู่

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

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9443 -j ACCEPT --verbose

กำหนดค่า TLS

ใช้ขั้นตอนต่อไปนี้ในการกำหนดค่าการเข้าถึง TLS ของ UI การจัดการ

  1. สร้างไฟล์ JKS คีย์สโตร์ที่มีใบรับรอง TLS รวมถึงคีย์ส่วนตัวและสำเนา ลงในโหนดเซิร์ฟเวอร์การจัดการ โปรดดูข้อมูลเพิ่มเติมที่การกำหนดค่า TLS/SSL สำหรับ Edge On Premises
  2. เรียกใช้คำสั่งต่อไปนี้เพื่อกำหนดค่า TLS
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl
  3. ป้อนหมายเลขพอร์ต HTTPS เช่น 9443
  4. ระบุว่าคุณต้องการปิดใช้การเข้าถึง HTTP ใน UI การจัดการหรือไม่ โดยค่าเริ่มต้น การจัดการ เข้าถึง UI ได้ผ่าน HTTP บนพอร์ต 9000
  5. ป้อนอัลกอริทึมคีย์สโตร์ ค่าเริ่มต้นคือ JKS
  6. ป้อนเส้นทางสัมบูรณ์ไปยังไฟล์ JKS ของคีย์สโตร์

    สคริปต์จะคัดลอกไฟล์ไปยังไดเรกทอรี /opt/apigee/customer/conf ใน โหนดเซิร์ฟเวอร์การจัดการ แล้วเปลี่ยนการเป็นเจ้าของไฟล์เป็น "apigee"

  7. ป้อนรหัสผ่านคีย์สโตร์ที่เป็นข้อความธรรมดา
  8. จากนั้นสคริปต์จะรีสตาร์ท UI การจัดการ Edge หลังจากรีสตาร์ท UI การจัดการ รองรับการเข้าถึงผ่าน TLS

    คุณดูการตั้งค่าเหล่านี้ได้ใน /opt/apigee/etc/edge-ui.d/SSL.sh

การใช้ไฟล์การกำหนดค่าเพื่อกำหนดค่า TLS

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

หากต้องการใช้ไฟล์การกำหนดค่า ให้สร้างไฟล์ใหม่และเพิ่มพร็อพเพอร์ตี้ต่อไปนี้

HTTPSPORT=9443
DISABLE_HTTP=y
KEY_ALGO=JKS
KEY_FILE_PATH=/opt/apigee/customer/application/mykeystore.jks
KEY_PASS=clearTextKeystorePWord

บันทึกไฟล์ในไดเรกทอรีในเครื่องโดยใช้ชื่อใดก็ได้ที่ต้องการ จากนั้นใช้คำสั่งต่อไปนี้เพื่อกำหนดค่า TLS

/opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

โดยที่ configFile คือเส้นทางแบบเต็มไปยังไฟล์ที่คุณบันทึกไว้

กำหนดค่า Edge UI เมื่อ TLS สิ้นสุดบนตัวจัดสรรภาระงาน

หากคุณมีตัวจัดสรรภาระงานที่ส่งต่อคำขอไปยัง Edge UI คุณอาจเลือกที่จะ สิ้นสุดการเชื่อมต่อ TLS บนตัวจัดสรรภาระงาน จากนั้นจึงส่งต่อตัวจัดสรรภาระงาน ไปยัง Edge UI ผ่าน HTTP ระบบรองรับการกำหนดค่านี้ แต่คุณต้องกำหนดค่า ตัวจัดสรรภาระงานและ Edge UI ตามความเหมาะสม

ต้องมีการกำหนดค่าเพิ่มเติมเมื่อ Edge UI ส่งอีเมลให้ผู้ใช้เพื่อตั้งค่า รหัสผ่าน เมื่อสร้างผู้ใช้ หรือเมื่อผู้ใช้ขอรีเซ็ตรหัสผ่านที่สูญหาย อีเมลนี้ มี URL ที่ผู้ใช้เลือกที่จะตั้งค่าหรือรีเซ็ตรหัสผ่าน โดยค่าเริ่มต้น ถ้า Edge UI คือ ไม่ได้กำหนดค่าให้ใช้ TLS URL ในอีเมลที่สร้างจะใช้โปรโตคอล HTTP ไม่ใช่ HTTPS คุณต้องกำหนดค่าตัวจัดสรรภาระงานและ Edge UI เพื่อสร้างที่อยู่อีเมลที่ใช้ HTTPS

หากต้องการกำหนดค่าตัวจัดสรรภาระงาน โปรดตรวจสอบว่าตัวจัดสรรภาระงานตั้งค่าส่วนหัวต่อไปนี้สำหรับคำขอที่ส่งต่อ ไปยัง Edge UI ดังนี้

X-Forwarded-Proto: https

วิธีกำหนดค่า Edge UI

  1. เปิด /opt/apigee/customer/application/ui.properties ในตัวแก้ไข หากไม่มีไฟล์ ให้สร้างตามขั้นตอนต่อไปนี้
    vi /opt/apigee/customer/application/ui.properties
  2. ตั้งค่าพร็อพเพอร์ตี้ต่อไปนี้ใน ui.properties
    conf/application.conf+trustxforwarded=true
  3. บันทึกการเปลี่ยนแปลงลงใน ui.properties
  4. รีสตาร์ท Edge UI ดังนี้
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

การตั้งค่าคุณสมบัติ TLS ที่ไม่บังคับ

Edge UI รองรับพร็อพเพอร์ตี้การกำหนดค่า TLS ที่ไม่บังคับ ซึ่งใช้ตั้งค่าต่อไปนี้

  • โปรโตคอล TLS เริ่มต้น
  • รายการโปรโตคอล TLS ที่รองรับ
  • อัลกอริทึม TLS ที่รองรับ
  • การเข้ารหัส TLS ที่รองรับ

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

TLS_CONFIGURE=y

ตารางต่อไปนี้จะอธิบายพร็อพเพอร์ตี้เหล่านี้

พร็อพเพอร์ตี้ คำอธิบาย
TLS_PROTOCOL กำหนดโปรโตคอล TLS เริ่มต้นสำหรับ Edge UI โดยค่าเริ่มต้นจะเป็น TLS 1.2 ค่าที่ถูกต้องคือ TLSv1.2, TLSv1.1, TLSv1
TLS_ENABLED_PROTOCOL

กำหนดรายการโปรโตคอลที่เปิดใช้เป็นอาร์เรย์ที่คั่นด้วยคอมมา เช่น

TLS_ENABLED_PROTOCOL=[\"TLSv1.2\", \"TLSv1.1\", \"TLSv1\"]

โปรดสังเกตว่าคุณต้อง Escape " อักขระ

ระบบจะเปิดใช้โปรโตคอลทั้งหมดโดยค่าเริ่มต้น

TLS_DISABLED_ALGO

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

ค่าที่ส่งไปยัง TLS_DISABLED_ALGO สอดคล้องกับค่าที่อนุญาตสำหรับ jdk.tls.disabledAlgorithmsตามที่อธิบายไว้ที่นี่ อย่างไรก็ตาม คุณต้องยกเว้นอักขระเว้นวรรคเมื่อตั้งค่า TLS_DISABLED_ALGO ดังนี้

TLS_DISABLED_ALGO=EC\ keySize\ <\ 160,RSA\ keySize\ <\ 2048
TLS_ENABLED_CIPHERS

กำหนดรายการการเข้ารหัส TLS ที่ใช้ได้เป็นอาร์เรย์ที่คั่นด้วยคอมมา เช่น

TLS_ENABLED_CIPHERS=[\"TLS_DHE_RSA_WITH_AES_128_CBC_SHA\",
\"TLS_DHE_DSS_WITH_AES_128_CBC_SHA\"]

โปรดสังเกตว่าคุณต้อง Escape " อักขระ

รายการเริ่มต้นของการเข้ารหัสที่เปิดใช้มีดังนี้

"TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
"TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
"TLS_RSA_WITH_AES_256_CBC_SHA",
"TLS_RSA_WITH_AES_128_CBC_SHA",
"SSL_RSA_WITH_RC4_128_SHA",
"SSL_RSA_WITH_RC4_128_MD5",
"TLS_EMPTY_RENEGOTIATION_INFO_SCSV"

ค้นหารายการการเข้ารหัสที่ใช้ได้ ที่นี่

การปิดใช้โปรโตคอล TLS

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

  1. เปิดไฟล์การกำหนดค่าในตัวแก้ไข
  2. หากต้องการปิดใช้โปรโตคอล TLS เดี่ยว เช่น TLSv1.0 ให้เพิ่มค่าต่อไปนี้ ลงในไฟล์การกำหนดค่า
    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1"

    หากต้องการปิดใช้โปรโตคอลหลายรายการ เช่น TLSv1.0 และ TLSv1.1 ให้ดำเนินการดังนี้ ให้เพิ่มข้อมูลต่อไปนี้ลงในไฟล์การกำหนดค่า

    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1, tlsv1.1"
  3. บันทึกการเปลี่ยนแปลงลงในไฟล์การกำหนดค่า
  4. เรียกใช้คำสั่งต่อไปนี้เพื่อกำหนดค่า TLS
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

    โดยที่ configFile คือเส้นทางแบบเต็มไปยังไฟล์การกำหนดค่า

  5. รีสตาร์ท Edge UI ดังนี้
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

ใช้คุกกี้ที่ปลอดภัย

Apigee Edge สำหรับ Private Cloud รองรับการเพิ่ม Flag secure ในส่วนหัว Set-Cookie สำหรับ การตอบกลับจาก Edge UI หากมีการตั้งค่าสถานะนี้ คุกกี้จะสามารถส่งได้เป็นการ ช่องที่เปิดใช้ TLS หากไม่มี คุกกี้จะส่งผ่านช่องใดก็ได้ไม่ว่า ว่าปลอดภัยไหม

คุกกี้ที่ไม่มีการแจ้ง secure อาจทำให้ผู้โจมตีตรวจจับได้และ ใช้คุกกี้ซ้ำหรือลักลอบใช้เซสชันที่มีการใช้งาน ดังนั้นแนวทางปฏิบัติแนะนำคือให้เปิดใช้ การตั้งค่า

วิธีตั้งค่าแฟล็ก secure สำหรับคุกกี้ Edge UI

  1. เปิดไฟล์ต่อไปนี้ในเครื่องมือแก้ไขข้อความ
    /opt/apigee/customer/application/ui.properties

    หากไม่มีไฟล์ ให้สร้างขึ้นมา

  2. ตั้งค่าพร็อพเพอร์ตี้ conf_application_session.secure เป็น true ใน ui.properties ตามตัวอย่างต่อไปนี้
    conf_application_session.secure=true
  3. บันทึกการเปลี่ยนแปลง
  4. รีสตาร์ท Edge UI โดยใช้ยูทิลิตี apigee-serice ตามตัวอย่างต่อไปนี้ แสดง:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

หากต้องการยืนยันว่าการเปลี่ยนแปลงใช้ได้ผล ให้ตรวจสอบส่วนหัวการตอบกลับจาก Edge UI โดยใช้ ยูทิลิตี เช่น curl เช่น

curl -i -v https://edge_UI_URL

ส่วนหัวควรมีบรรทัดที่มีลักษณะดังต่อไปนี้

Set-Cookie: secure; ...

ปิดใช้ TLS ใน Edge UI

หากต้องการปิดใช้ TLS ใน Edge UI ให้ใช้คำสั่งต่อไปนี้

/opt/apigee/apigee-service/bin/apigee-service edge-ui disable-ssl