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

Edge for Private Cloud v4.19.01

โดยค่าเริ่มต้น 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 API ให้กำหนดการตั้งค่าในไฟล์ /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

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

ตอนนี้ Management 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 ใช้งานได้กับ 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. แก้ไข /opt/apigee/customer/application/ui.properties เพื่อตั้งค่าพร็อพเพอร์ตี้ต่อไปนี้สำหรับ Edge UI
    conf_apigee_apigee.mgmt.baseurl="https://FQ_domain_name:port/v1"

    โดยที่ FQ_domain_name คือชื่อโดเมนแบบเต็มตามที่อยู่ใบรับรองของ Management Server และ port คือพอร์ตที่ระบุไว้ด้านบนโดย conf_webserver_ssl.port

    หากไม่มี ui.properties ให้สร้างขึ้นมา

  5. เฉพาะในกรณีที่คุณใช้ใบรับรองแบบ Self-signed (ไม่แนะนำในสภาพแวดล้อมฮาร์ดแวร์และซอฟต์แวร์) เมื่อกำหนดค่าการเข้าถึง TLS ไปยัง Management API ข้างต้น ให้เพิ่มพร็อพเพอร์ตี้ต่อไปนี้ลงใน ui.properties
    conf/application.conf+play.ws.ssl.loose.acceptAnyCertificate=true

    ไม่เช่นนั้น Edge UI จะปฏิเสธใบรับรองแบบ Self-signed

  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

ใช้รหัสผ่านที่สร้างความสับสนในรูปแบบ OBF:xxxxxxxxxx

conf_webserver_cert.alias=alias

ชื่อแทนใบรับรอง Keystore ที่ไม่บังคับ

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_webserver_exclude.cipher.suites=CIPHER_SUITE_1 CIPHER_SUITE_2

conf_webserver_include.cipher.suites=

ระบุชุดการเข้ารหัสที่ต้องการรวมหรือยกเว้น เช่น หากพบช่องโหว่ในการเข้ารหัส คุณสามารถยกเว้นได้ที่นี่ คั่นการเข้ารหัสหลายรายการด้วยการเว้นวรรค

ดูข้อมูลเกี่ยวกับชุดการเข้ารหัสและสถาปัตยกรรมวิทยาการเข้ารหัสได้ที่ เอกสารประกอบเกี่ยวกับผู้ให้บริการ Oracle สำหรับสถาปัตยกรรมวิทยาการเข้ารหัส Java สำหรับ JDK 8

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

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

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