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

Edge สำหรับ Private Cloud เวอร์ชัน 4.17.05

โดยค่าเริ่มต้น TLS จะปิดใช้สำหรับ Management API และคุณเข้าถึง Edge Management API ผ่าน HTTP โดยใช้ที่อยู่ IP ของโหนด Management Server และพอร์ต 8080 เช่น

http://ms_IP:8080

นอกจากนี้ คุณอาจกำหนดค่าการเข้าถึง TLS ให้กับ Management API เพื่อให้เข้าถึงได้ในแบบฟอร์ม ดังนี้

https://ms_IP:8443

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

หากต้องการตรวจสอบว่ามีการเข้ารหัสการรับส่งข้อมูลไปยังและจาก Management API ให้กำหนดการตั้งค่าในไฟล์ /opt/apigee/customer/application/management-server.properties

นอกจากการกำหนดค่า TLS แล้ว คุณยังควบคุมการตรวจสอบรหัสผ่าน (ความยาวและความรัดกุมของรหัสผ่าน) ได้โดยการแก้ไขไฟล์ management-server.properties

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

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

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

กำหนดค่า TLS

แก้ไขไฟล์ /opt/apigee/customer/application/management-server.properties เพื่อควบคุมการใช้ TLS ในการรับส่งข้อมูลเข้าและออกจาก Management API หากไม่มีไฟล์นี้ ให้สร้างขึ้นมา

ใช้ขั้นตอนต่อไปนี้เพื่อกำหนดค่าการเข้าถึง TLS ไปยัง Management API

  1. สร้างไฟล์ JKS คีย์สโตร์ที่มีการรับรอง TLS และคีย์ส่วนตัว โปรดดูการกำหนดค่า TLS/SSL สำหรับ Edge ภายในองค์กร
  2. คัดลอกไฟล์ JKS สำหรับคีย์สโตร์ไปยังไดเรกทอรีในโหนดของเซิร์ฟเวอร์การจัดการ เช่น /opt/apigee/customer/application
  3. เปลี่ยนการเป็นเจ้าของไฟล์ JKS เป็น apigee:
    $ chown apigee:apigee keystore.jks

    โดยที่ keystore.jks คือชื่อไฟล์คีย์สโตร์ของคุณ
  4. แก้ไข /opt/apigee/customer/application/management-server.properties เพื่อตั้งค่าพร็อพเพอร์ตี้ต่อไปนี้ หากไม่มี ให้สร้างไฟล์ดังนี้
    conf_webserver_ssl.enabled=true
    # ตั้งค่า conf_webserver_http.turn.off เป็น false
    # เนื่องจากการเรียกใช้ภายใน Edge จํานวนมากใช้ HTTP
    conf_webserver_http.turn.off=false
    conf_webserver_ssl.port=8443
    conf_webserver_keystore.path=/opt/apigee/customer/application/keystore.jks
    # ป้อนรหัสผ่านคีย์สโตร์ที่มีการสร้างความสับสนด้านล่าง
    conf_webserver_keystore.password=OBF:obfuscatedPassword
    conf_webserver_cert.alias=apigee-devtest


    โดยที่ keyStore.jks เป็นไฟล์คีย์สโตร์ และ obfuscatedPassword คือรหัสผ่านคีย์สโตร์ที่มีความสับสน โปรดดูการกำหนดค่า TLS/SSL สำหรับ Edge ภายในองค์กรเพื่อดูข้อมูลเกี่ยวกับการสร้างรหัสผ่านที่สร้างความสับสน
  5. รีสตาร์ท Edge Management Server โดยใช้คำสั่งต่อไปนี้
    $ /opt/apigee/apigee-service/bin/apigee-service edge-management-serverของหน้ารีสตาร์ท

ขณะนี้ Management API รองรับการเข้าถึงผ่าน TLS แล้ว

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

กำหนดค่า Edge UI เพื่อใช้ TLS ในการเข้าถึง Edge API

ในขั้นตอนด้านบน Apigee แนะนำให้ปล่อย conf_webserver_http.turn.off=false ไว้เพื่อให้ Edge UI เรียก Edge API ผ่าน HTTP ต่อไปได้

ใช้ขั้นตอนต่อไปนี้ในการกำหนดค่า Edge UI เพื่อทำการเรียกผ่าน HTTPS เท่านั้น

  1. กำหนดค่าการเข้าถึง TLS ไปยัง Management API ดังที่อธิบายข้างต้น
  2. หลังจากยืนยันว่า TLS ใช้งานได้กับ API การจัดการแล้ว ให้แก้ไข /opt/apigee/customer/application/management-server.properties เพื่อตั้งค่าพร็อพเพอร์ตี้ต่อไปนี้
    conf_webserver_http.turn.off=true
  3. รีสตาร์ท Edge Management Server โดยใช้คำสั่งต่อไปนี้
    $ /opt/apigee/apigee-service/bin/apigee-service edge-management-serverบ้างไหม
  4. แก้ไข /opt/apigee/customer/application/ui.properties เพื่อตั้งค่าพร็อพเพอร์ตี้ต่อไปนี้สำหรับ Edge UI หากไม่มี ให้สร้างไฟล์ดังนี้
    conf_apigee_apigee.mgmt.baseurl="https://FQDN:8443/v1"

    โดยที่ FQDN คือชื่อโดเมนแบบเต็มตามที่อยู่ใบรับรองของเซิร์ฟเวอร์การจัดการและหมายเลขพอร์ตคือพอร์ตที่ conf_webserver._ssl. ระบุไว้ด้านบน
  5. เฉพาะในกรณีที่คุณใช้ใบรับรองแบบ Self-signed (ไม่แนะนำในสภาพแวดล้อมเวอร์ชันที่ใช้งานจริง) เมื่อกำหนดค่าการเข้าถึง TLS สำหรับ Management API ด้านบน ให้เพิ่มพร็อพเพอร์ตี้ต่อไปนี้ไปยัง ui.properties
    conf/application.conf+play.ws.ssl.loose.acceptAnyCertificate=true

    มิเช่นนั้น Edge UI จะปฏิเสธใบรับรองที่ลงนามด้วยตนเอง
  6. รีสตาร์ท UI ของ Edge โดยใช้คำสั่งต่อไปนี้
    $ /opt/apigee/apigee-service/bin/apigee-service edge-uiของหน้าอีกครั้ง

พร็อพเพอร์ตี้ TLS สำหรับเซิร์ฟเวอร์การจัดการ

ตารางต่อไปนี้แสดงพร็อพเพอร์ตี้ TLS/SSL ทั้งหมดที่คุณตั้งค่าได้ใน management-server.properties

พร็อพเพอร์ตี้

คำอธิบาย

conf_webserver_http.port=8080

ค่าเริ่มต้นคือ 8080

conf_webserver_ssl.enabled=false

ในการเปิด/ปิดใช้ TLS/SSL เมื่อเปิดใช้ TLS/SSL (จริง) คุณต้องตั้งค่าพร็อพเพอร์ตี้ ssl.port และ keystore.path ด้วย

conf_webserver_http.turn.off=true

หากต้องการเปิด/ปิดใช้ http พร้อมกับ https หากต้องการใช้เฉพาะ HTTPS ให้ใช้ค่าเริ่มต้นเป็น true

conf_webserver_ssl.port=8443

พอร์ต TLS/SSL

จำเป็นเมื่อมีการเปิดใช้ TLS/SSL (conf_webserver_ssl.enabled=true)

conf_webserver_keystore.path=<path>

เส้นทางไปยังไฟล์คีย์สโตร์

จำเป็นเมื่อมีการเปิดใช้ TLS/SSL (conf_webserver_ssl.enabled=true)

conf_webserver_keystore.password=

ใช้รหัสผ่านที่สร้างความสับสนในรูปแบบ OBF:xxxxxxxxxx

conf_webserver_cert.alias=

ชื่อแทนใบรับรองคีย์สโตร์ที่ไม่บังคับ

conf_webserver_keymanager.password=

หากเครื่องมือจัดการคีย์มีรหัสผ่าน ให้ป้อนรหัสผ่านที่มีการสร้างความสับสนในรูปแบบ OBF:xxxxxxxxxx

conf_webserver_trust.all= <false | true>

conf_webserver_trust.store.path=<path>

conf_webserver_trust.store.password=

กำหนดการตั้งค่าสำหรับ Trust Store กำหนดว่าคุณต้องการยอมรับใบรับรอง TLS/SSL ทั้งหมดหรือไม่ (เช่น เพื่อยอมรับประเภทที่ไม่ใช่มาตรฐาน) ค่าเริ่มต้นคือ false ระบุเส้นทางไปยัง Trust Store ของคุณ และป้อนรหัสผ่านของ Trust Store ที่มีการสร้างความสับสนในรูปแบบ OBF:xxxxxxxxxx

conf_webserver_exclude.cipher.suites=<CIPHER_SUITE_1 CIPHER_SUITE_2>

conf_webserver_include.cipher.suites=

ระบุชุดการเข้ารหัสที่ต้องการรวมหรือยกเว้น เช่น หากพบช่องโหว่ในการเข้ารหัส คุณจะยกเว้นช่องโหว่ดังกล่าวได้ที่นี่ คั่นการเข้ารหัสหลายรายการด้วยการเว้นวรรค

สำหรับข้อมูลเกี่ยวกับชุด Cypher และสถาปัตยกรรมวิทยาการเข้ารหัส โปรดดู:

http://docs.oracle.com/javase/8/docs/technotes/
คู่มือ/security/SunProviders.html#SunJSSE

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

จำนวนเต็มที่กำหนดข้อมูลต่อไปนี้

  • ขนาดแคชของเซสชัน TLS/SSL (ในหน่วยไบต์) สำหรับการจัดเก็บข้อมูลเซสชันสำหรับไคลเอ็นต์หลายรายการ
  • ระยะเวลาเซสชัน TLS/SSL อาจมีระยะเวลาก่อนหมดเวลา (เป็นมิลลิวินาที)