การกําหนดค่า 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 ในองค์กร
  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 แล้ว

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

ในขั้นตอนข้างต้น Apigee แนะนำให้ปล่อย conf_webserver_http.turn.off=false ไว้เพื่อให้ UI ของ Edge เรียกใช้ 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 โดยเรียกใช้คำสั่งต่อไปนี้
    /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

    มิฉะนั้น UI ของ Edge จะปฏิเสธใบรับรองที่ลงนามด้วยตนเอง

  6. รีสตาร์ท UI ของ Edge โดยเรียกใช้คำสั่งต่อไปนี้
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

การใช้คีย์สโตร์ PKCS12 สำหรับระบบปฏิบัติการที่พร้อมใช้งาน FIPS

หากใช้ Edge สำหรับ Private Cloud ในระบบปฏิบัติการที่เปิดใช้ FIPS คุณต้องใช้สโตร์คีย์ PKCS12 ซึ่งจำเป็นต่อการปฏิบัติตามมาตรฐาน FIPS นอกเหนือจากการกำหนดค่ามาตรฐานอื่นๆ ที่กล่าวถึงในบทความนี้ ให้เพิ่มการกำหนดค่าต่อไปนี้ลงในไฟล์ management-server.properties

conf/webserver.properties+keystore.type=PKCS12

อย่าลืมใช้การเปลี่ยนแปลงนี้หากสภาพแวดล้อมของคุณเปิดใช้ FIPS เพื่อความเข้ากันได้กับมาตรฐานการเข้ารหัสที่กำหนด

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

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

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 ระบุเส้นทางไปยังที่เก็บข้อมูลเชื่อถือ และป้อนรหัสผ่านที่เก็บข้อมูลเชื่อถือแบบสร้างความสับสนในรูปแบบนี้

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