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

Edge for Private Cloud v4.18.05

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

http://ms_IP:8080

หรือจะกําหนดค่าการเข้าถึง TLS ไปยัง Management API เพื่อให้เข้าถึงในรูปแบบต่อไปนี้ก็ได้

https://ms_IP:8443

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

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

นอกจากการกำหนดค่า 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 โดยใช้คำสั่งต่อไปนี้
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

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

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

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

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

  1. กำหนดค่าการเข้าถึง TLS ไปยัง Management API ตามที่อธิบายไว้ข้างต้น
  2. หลังจากยืนยันว่า TLS ทํางานสําหรับ Management API แล้ว ให้แก้ไข /opt/apigee/customer/application/management-server.properties เพื่อตั้งค่าพร็อพเพอร์ตี้ต่อไปนี้ conf_webserver_http.turn.off=true
  3. รีสตาร์ทเซิร์ฟเวอร์การจัดการ Edge โดยใช้คำสั่งต่อไปนี้
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart 
  4. แก้ไข /opt/apigee/customer/application/ui.properties เพื่อตั้งค่าพร็อพเพอร์ตี้ต่อไปนี้สําหรับ UI ของ Edge หากไม่มีไฟล์ดังกล่าว ให้สร้างไฟล์ ดังนี้ 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 มิเช่นนั้น UI ของ Edge จะปฏิเสธใบรับรองที่ลงนามด้วยตนเอง
  6. รีสตาร์ท UI ของ Edge โดยใช้คำสั่งต่อไปนี้
    /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=

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

conf_webserver_exclude.cipher.suites=<CIPHER_SUITE_1 CIPHER_SUITE_2>

conf_webserver_include.cipher.suites=

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

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

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 ทำงานได้ก่อนที่จะหมดเวลา (เป็นมิลลิวินาที)