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

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

    สคริปต์นี้จะคัดลอกไฟล์ไปยังไดเรกทอรี /opt/apigee/customer/conf บนโหนด Management Server และเปลี่ยนการเป็นเจ้าของไฟล์เป็น "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 ที่ผู้ใช้เลือกที่จะตั้งค่าหรือรีเซ็ตรหัสผ่าน โดยค่าเริ่มต้น หากไม่ได้กำหนดค่า UI ของ Edge ให้ใช้ 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. รีสตาร์ท UI ของ Edge โดยทำดังนี้
    /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. รีสตาร์ท UI ของ Edge โดยทำดังนี้
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

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

Apigee Edge สำหรับ Private Cloud รองรับการเพิ่มแฟล็ก 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