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

Edge สำหรับ Private Cloud เวอร์ชัน 4.18.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
    # Leave conf_webserver_http.turn.off set to false
    # because many Edge internal calls use HTTP.
    conf_webserver_http.turn.off=false
    conf_webserver_ssl.port=8443
    conf_webserver_keystore.path=/opt/apigee/customer/application/keystore.jks
    # Enter the obfuscated keystore password below.
    conf_webserver_keystore.password=OBF:obfuscatedPassword
    โดยที่ keyStore.jks คือไฟล์คีย์สโตร์ของคุณ และ obfuscatedPassword คือรหัสผ่านคีย์สโตร์ที่มีการสร้างความสับสน โปรดดูการกำหนดค่า TLS/SSL สำหรับ Edge ภายในองค์กรเพื่อดูข้อมูลเกี่ยวกับการสร้างรหัสผ่านที่สร้างความสับสน
  5. รีสตาร์ท Edge Management Server โดยใช้คำสั่งต่อไปนี้
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

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

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

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

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

  1. กำหนดค่าการเข้าถึง TLS ไปยัง Management API ดังที่อธิบายข้างต้น
  2. หลังจากยืนยันว่า TLS ใช้งานได้กับ Management 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 restart 
  4. แก้ไข /opt/apigee/customer/application/ui.properties เพื่อตั้งค่าพร็อพเพอร์ตี้ต่อไปนี้สำหรับ Edge UI หากไม่มีไฟล์ดังกล่าว ให้สร้างไฟล์โดยทำดังนี้ conf_apigee_apigee.mgmt.baseurl="https://FQDN:8443/v1" โดยที่ FQDN คือชื่อโดเมนแบบเต็มตามที่อยู่ใบรับรองของเซิร์ฟเวอร์การจัดการ และหมายเลขพอร์ตคือพอร์ตที่ conf_webserver_ssl.port ระบุไว้ด้านบน
  5. เฉพาะในกรณีที่คุณใช้ใบรับรองที่ลงชื่อด้วยตนเอง (ไม่แนะนำในสภาพแวดล้อมเวอร์ชันที่ใช้งานจริง) เมื่อกำหนดค่าการเข้าถึง TLS สำหรับ Management API ข้างต้น ให้เพิ่มพร็อพเพอร์ตี้ต่อไปนี้ไปยัง ui.properties conf/application.conf+play.ws.ssl.loose.acceptAnyCertificate=true ไม่เช่นนั้น Edge UI จะปฏิเสธใบรับรองที่ลงนามด้วยตนเอง
  6. รีสตาร์ท Edge UI โดยใช้คำสั่งต่อไปนี้
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

พร็อพเพอร์ตี้ 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/guides/security/SunProviders.html#SunJSSE

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

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

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