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

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

http://ms_IP:9000

หรือคุณจะกำหนดค่าการเข้าถึง TLS ไปยัง UI ของ 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. ระบุว่าคุณต้องการปิดใช้การเข้าถึง 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 ในไฟล์การกําหนดค่า

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

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

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

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

X-Forwarded-Proto: https

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

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

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

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

"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 เท่านั้น หากไม่มี คุกกี้จะส่งผ่านช่องทางใดก็ได้ ไม่ว่าจะปลอดภัยหรือไม่ก็ตาม

คุกกี้ที่ไม่มี 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. รีสตาร์ท UI ของ Edge โดยใช้ยูทิลิตี 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