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

โดยค่าเริ่มต้น คุณจะเข้าถึง UI ของ Edge ผ่าน 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
# Set type to PKCS12 if you are using a PKCS12 keystore
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 คือเส้นทางแบบเต็มไปยังไฟล์ที่คุณบันทึกไว้

การใช้คีย์สโตร์ PKCS12 สำหรับระบบปฏิบัติการที่พร้อมใช้งาน FIPS

หากคุณใช้ Edge for Private Cloud ในระบบปฏิบัติการที่เปิดใช้ FIPS คุณควรใช้คีย์สโตร์ PKCS12 คุณสร้างคีย์สโตร์ PKCS12 ได้โดยใช้คําสั่ง OpenSSL มาตรฐาน เมื่อใช้คีย์สโตร์ PKCS12 ให้ตั้งค่า KEY_ALGO=PKCS12 ในไฟล์การกำหนดค่า

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

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

ต้องมีการกำหนดค่าเพิ่มเติมเมื่อ 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 เริ่มต้นสําหรับ UI ของ Edge โดยค่าเริ่มต้นจะเป็น 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\"]

โปรดสังเกตว่าคุณต้อง 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 สําหรับคําตอบจาก UI ของ Edge หากมี Flag นี้ ระบบจะส่งคุกกี้ผ่านช่องทางที่เปิดใช้ TLS เท่านั้น หากไม่มี คุกกี้จะส่งผ่านช่องใดก็ได้ไม่ว่า ว่าปลอดภัยไหม

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

วิธีตั้งค่า Flag secure สําหรับคุกกี้ UI ของ Edge

  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

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

curl -i -v https://edge_UI_URL

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

Set-Cookie: secure; ...

ปิดใช้ TLS ใน UI ของ Edge

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

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