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

Edge for Private Cloud เวอร์ชัน 4.17.05

โดยค่าเริ่มต้น 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

นอกจากการกำหนดค่า 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 On สถานที่
  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 คือรหัสผ่านคีย์สโตร์ที่ปรับให้ยากต่อการอ่าน (ObfuscatedPassword) โปรดดูการกำหนดค่า TLS/SSL สำหรับ Edge On Premises สำหรับ ในการสร้างรหัสผ่านที่ปรับให้ยากต่อการอ่าน (Obfuscate)
  5. รีสตาร์ท Edge Management Server โดยใช้คำสั่ง
    $ /opt/apigee/apigee-service/bin/apigee-service edge-management-server รีสตาร์ท

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

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

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

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

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

  1. กำหนดค่าการเข้าถึง TLS ของ Management 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.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 ของการบริการ

พร็อพเพอร์ตี้ 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=

หากเครื่องมือจัดการคีย์ของคุณมีรหัสผ่าน ให้ป้อนรหัสผ่านเวอร์ชันที่ปรับให้ยากต่อการอ่าน (Obfuscate) ใน รูปแบบนี้: OBF:xxxxxxxxxx

conf_webserver_trust.all= <false | true>

conf_webserver_trust.store.path=&lt;path&gt;

conf_webserver_trust.store.password=

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

conf_webserver_exclude.cipher.suites=&lt;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 อาจมีได้ก่อนหมดเวลา (ใน มิลลิวินาที)