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

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

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

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

กำหนดค่า 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 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. เฉพาะกรณีที่คุณใช้ใบรับรองที่ลงนามด้วยตนเอง (ไม่แนะนำในเวอร์ชันที่ใช้งานจริงเท่านั้น) สภาพแวดล้อม) เมื่อกำหนดค่าการเข้าถึง 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=

ใช้รหัสผ่านที่มีการปรับให้ยากต่อการอ่าน (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=<path>

conf_webserver_trust.store.password=

กำหนดการตั้งค่าสำหรับ Trust Store เลือกว่าต้องการยอมรับทั้งหมดหรือไม่ ใบรับรอง TLS/SSL (เช่น เพื่อยอมรับประเภทที่ไม่ใช่มาตรฐาน) โดยมีค่าเริ่มต้นเป็น false ระบุเส้นทาง ลงใน Trust Store แล้วป้อนรหัสผ่าน 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 อาจมีได้ก่อนหมดเวลา (ใน มิลลิวินาที)