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

Edge for Private Cloud v. 4.16.09

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

http://ms_IP:8080

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

https://ms_IP:8443

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

หากต้องการให้มีการเข้ารหัสการรับส่งข้อมูลไปยังและจาก 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 ในการรับส่งข้อมูลไปยังและจาก 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
    # ตั้งค่าถัดจาก "จริง" หากการสื่อสารทั้งหมดควรผ่าน HTTPS
    # ไม่แนะนําจนกว่าคุณจะทดสอบ TLS/HTTPS สําหรับ Edge API และ
    # กำหนดค่า UI ของ Edge ให้ใช้ TLS เพื่อเข้าถึง Edge API ตามที่แสดงด้านล่าง
    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 โดยใช้คําสั่ง
    $ /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 ต่อไปได้

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

  1. กำหนดค่าการเข้าถึง TLS ไปยัง 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

    มิเช่นนั้น 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=

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