การกําหนดค่า 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. ป้อน Absolute Path ไปยังไฟล์ 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\"]

โปรดทราบว่าคุณต้องหลีกเลี่ยงอักขระ "

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

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\"]

โปรดทราบว่าคุณต้องหลีกเลี่ยงอักขระ "

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

"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 รองรับการเพิ่มแฟล็ก secure ลงในส่วนหัว Set-Cookie สำหรับการตอบกลับจาก Edge UI หากมี Flag นี้ ระบบจะส่งคุกกี้ได้ผ่านช่องทางที่เปิดใช้ 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