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

โดยค่าเริ่มต้น 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://FQ_domain_name:port/v1"

    โดยที่ FQ_domain_name คือชื่อโดเมนแบบเต็มตามที่อยู่ใบรับรองของเซิร์ฟเวอร์การจัดการและ port คือพอร์ตที่ conf_webserver_ssl.port ระบุไว้ด้านบน

    หากไม่มี ui.properties ให้สร้างขึ้นมา

  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=password

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

conf_webserver_cert.alias=alias

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

conf_webserver_keymanager.password=password

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

OBF:xxxxxxxxxx

conf_webserver_trust.all=[false | true]

conf_webserver_trust.store.path=path

conf_webserver_trust.store.password=password

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

OBF:xxxxxxxxxx

conf_http_HTTPTransport.ssl.cipher.suites.blacklist=CIPHER_SUITE_1, CIPHER_SUITE_2

conf_http_HTTPTransport.ssl.cipher.suites.whitelist=

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

การเข้ารหัสที่คุณนำออกจากบัญชีดำจะมีลำดับความสำคัญเหนือกว่าการเข้ารหัสทั้งหมดที่รวมอยู่ในรายการที่อนุญาตพิเศษ

หมายเหตุ: โดยค่าเริ่มต้น หากไม่ได้ระบุบัญชีดำหรือรายการที่อนุญาตพิเศษ ระบบจะยกเว้นการเข้ารหัสที่ตรงกับนิพจน์ทั่วไปของ Java ต่อไปนี้โดยค่าเริ่มต้น

^.*_(MD5|SHA|SHA1)$
^TLS_RSA_.*$
^SSL_.*$
^.*_NULL_.*$
^.*_anon_.*$

อย่างไรก็ตาม หากคุณระบุบัญชีดำ ระบบจะลบล้างตัวกรองนี้ และคุณต้องขึ้นบัญชีดำการเข้ารหัสทั้งหมดทีละรายการ

ดูข้อมูลเกี่ยวกับชุดการเข้ารหัสและสถาปัตยกรรมวิทยาการเข้ารหัสได้ที่ เอกสารประกอบของ Java Cryptography Architecture Oracle Providers Providers สำหรับ JDK 8

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

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

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