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

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

http://ms_IP:8080

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

https://ms_IP:8443

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

หากต้องการเข้ารหัสการรับส่งข้อมูลไปยังและจาก Management API ให้กำหนดค่าการตั้งค่าในไฟล์ /opt/apigee/customer/application/management-server.properties

นอกจากการกำหนดค่า TLS แล้ว คุณยังควบคุมการตรวจสอบรหัสผ่าน (ความยาว และความซับซ้อนของรหัสผ่าน) ได้ด้วยการแก้ไขไฟล์ management-server.properties

ตรวจสอบว่าพอร์ต TLS เปิดอยู่

ขั้นตอนในส่วนนี้จะกำหนดค่า TLS ให้ใช้พอร์ต 8443 ใน Management Server ไม่ว่าคุณจะใช้พอร์ตใดก็ตาม คุณต้องตรวจสอบว่าพอร์ตนั้นเปิดอยู่ใน Management Server เช่น คุณสามารถใช้คำสั่งต่อไปนี้เพื่อเปิดพอร์ต

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 คีย์สโตร์ไปยังไดเรกทอรีในโหนด Management Server เช่น /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สำหรับ

  5. รีสตาร์ท Edge Management Server โดยใช้คำสั่งต่อไปนี้
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

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

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

ในขั้นตอนด้านบน Apigee แนะนำให้ปล่อย conf_webserver_http.turn.off=false ไว้เพื่อให้ New Edge UI สามารถเรียก Edge API ผ่าน HTTP ต่อไปได้

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

  1. กำหนดค่าการเข้าถึง TLS ไปยัง Management API ตามที่อธิบายไว้ข้างต้น
  2. หลังจากยืนยันว่า TLS ทำงานสำหรับ Management 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. อัปเดตการกำหนดค่า New Edge UI เพื่อเชื่อมต่อกับ Management Server ผ่าน HTTPS ตั้งค่าพร็อพเพอร์ตี้ต่อไปนี้ในไฟล์การกำหนดค่า New Edge UI
    APIGEE_PORT_HTTP_MS=port
    MS_SCHEME=https

    โดยที่ port คือพอร์ตที่ระบุไว้ก่อนหน้านี้โดย conf_webserver_ssl.port (เช่น 8443)

  5. ใช้การกำหนดค่าที่อัปเดตกับ New Edge UI โดยใช้คำสั่งต่อไปนี้
    /opt/apigee/apigee-setup/bin/setup.sh -p ue -f configFile

    ดูรายละเอียดเพิ่มเติมเกี่ยวกับไฟล์การกำหนดค่า New Edge UI ได้ที่หัวข้อ กำหนดค่า New Edge UI หากต้องการกำหนดค่าการเข้าถึง HTTPS ไปยัง New Edge UI เอง โปรดดูที่ หัวข้อกำหนดค่า TLS สำหรับ New Edge UI

พร็อพเพอร์ตี้ TLS สำหรับ Management Server

ตารางต่อไปนี้แสดงรายการพร็อพเพอร์ตี้ TLS/SSL ทั้งหมดที่คุณตั้งค่าได้ใน management-server.properties

พร็อพเพอร์ตี้ คำอธิบาย

conf_webserver_http.port=8080

ค่าเริ่มต้นคือ 8080

conf_webserver_ssl.enabled=false

เพื่อเปิด/ปิดใช้ TLS/SSL หากเปิดใช้ TLS/SSL (true) คุณต้องตั้งค่าพร็อพเพอร์ตี้ 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

ใช้รหัสผ่านที่เข้ารหัสในรูปแบบ OBF:xxxxxxxxxx

conf_webserver_cert.alias=alias

นามแฝงใบรับรองคีย์สโตร์ (ไม่บังคับ)

conf_webserver_keymanager.password=password

หากตัวจัดการคีย์มีรหัสผ่าน ให้ป้อนรหัสผ่านเวอร์ชันที่เข้ารหัสใน รูปแบบต่อไปนี้

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 ที่เข้ารหัสในรูปแบบต่อไปนี้

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 จะอยู่ได้ก่อนที่จะหมดเวลา (เป็น มิลลิวินาที)