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

Edge for Private Cloud v. 4.17.01

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

http://ms_IP:8080

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

https://ms_IP:8443

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

โปรดกําหนดการตั้งค่าในไฟล์ /opt/apigee/customer/application/management-server.properties เพื่อให้แน่ใจว่ามีการเข้ารหัสการรับส่งข้อมูลไปยังและจาก Management 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 ในการรับส่งข้อมูลไปยังและจาก API การจัดการ หากไม่มีไฟล์นี้ ให้สร้างไฟล์

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

  1. สร้างไฟล์ JKS ของคีย์สโตร์ที่ประกอบด้วยใบรับรอง TLS และคีย์ส่วนตัว ดูข้อมูลเพิ่มเติมได้ที่การกำหนดค่า TLS/SSL สำหรับ Edge On Premises
  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
    # ป้อนรหัสผ่าน Keystore ที่ปรับให้ยากต่อการอ่าน (Obfuscate) ด้านล่าง
    conf_webserver_keystore.password=OBF:obfuscatedPassword
    conf_webserver_cert.alias=apigee-devtest


    โดยที่ keyStore.jks คือไฟล์คีย์สโตร์ และ obfuscatedPassword คือรหัสผ่านคีย์สโตร์ที่สร้างความสับสน โปรดดูการกำหนดค่า TLS/SSL สำหรับ Edge On Premises สำหรับข้อมูลเกี่ยวกับการสร้างรหัสผ่านที่ปรับให้ยากต่อการอ่าน (Obfuscate)
  5. รีสตาร์ทเซิร์ฟเวอร์การจัดการ Edge โดยใช้คําสั่ง
    $ /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

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

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

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

ในขั้นตอนข้างต้น Apigee จะต้องทิ้ง conf_webserver_http.turn.off=false เพื่อให้ Edge UI เรียกใช้ 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 โดยใช้คําสั่ง
    $ /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. เฉพาะในกรณีที่คุณใช้ใบรับรองแบบ Self-signed (ไม่แนะนำในสภาพแวดล้อมที่ใช้งานจริง) เมื่อกำหนดค่าการเข้าถึง TLS ไปยัง Management API ด้านบน ให้เพิ่มพร็อพเพอร์ตี้ต่อไปนี้ลงใน ui.properties
    conf/application.conf+play.ws.ssl.loose.acceptAnyCertificate=true

    มิเช่นนั้น UI ของ Edge จะปฏิเสธใบรับรองแบบ Self-signed
  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=

ใช้รหัสผ่านที่มีการปรับให้ยากต่อการอ่าน (Obfuscate) ในรูปแบบนี้: 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 ทำงานได้ก่อนที่จะหมดเวลา (เป็นมิลลิวินาที)