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

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

ใช้รหัสผ่านที่มีการปรับให้ยากต่อการอ่าน (Obfuscate) ในรูปแบบนี้: OBF:xxxxxxxxxx

conf_webserver_cert.alias=alias

ชื่อแทนใบรับรองคีย์สโตร์ที่เป็นตัวเลือก

conf_webserver_keymanager.password=password

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

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 ที่ปรับให้ยากต่อการอ่าน (Obfuscate) ในรูปแบบนี้

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 สำหรับ JDK 8

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

จำนวนเต็มที่กำหนดสิ่งต่อไปนี้

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