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

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

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

แก้ไขไฟล์ /<install_dir>/apigee/customer/application/management-server.properties เพื่อควบคุมการใช้ TLS ในการรับส่งข้อมูลไปยังและจาก Management API หากไม่มีไฟล์นี้ ให้สร้างขึ้นมา

ใช้ขั้นตอนต่อไปนี้เพื่อกำหนดค่าการเข้าถึง TLS ไปยัง Management API

  1. สร้างไฟล์ JKS ของคีย์สโตร์ที่มีใบรับรอง TLS และคีย์ส่วนตัว ดูข้อมูลเพิ่มเติมได้ที่การกำหนดค่า TLS/SSL สำหรับ Edge On Premises
  2. คัดลอกไฟล์ JKS ของคีย์สโตร์ไปยังไดเรกทอรีในโหนดเซิร์ฟเวอร์การจัดการ เช่น /tmp
  3. เปลี่ยนการเป็นเจ้าของไฟล์ JKS เป็น apigee:
    $ chown apigee:apigee keystore.jks

    โดยที่ keystore.jks คือชื่อไฟล์คีย์สโตร์
  4. แก้ไข /<install_dir>/apigee/customer/application/management-server.properties เพื่อตั้งค่าพร็อพเพอร์ตี้ต่อไปนี้ หากไม่มีไฟล์ดังกล่าว ให้สร้างขึ้นมา
    conf_webserver_ssl.enabled=true
    # ตั้งค่าถัดไปเป็น "true" หากการสื่อสารทั้งหมดควรดำเนินการผ่าน HTTPS
    # ไม่แนะนำเนื่องจากการเรียกใช้ภายในของ Edge จำนวนมากใช้ HTTP
    conf_webserver_http.turn.off=false
    conf_webserver_ssl.port=8443
    conf_webserver_keystore.path=/tmp/keystore.jks
    # ป้อนรหัสผ่านคีย์สโตร์ที่สร้างความสับสนด้านล่าง
    conf_webserver_keystore.password=OBF:obfuscatedPassword
    conf_webserver_cert.alias=apigee-devtest


    โดย keyStore.jks คือไฟล์คีย์สโตร์ และ obfuscatedPassword คือรหัสผ่านคีย์สโตร์ที่สร้างความสับสน ดูข้อมูลเกี่ยวกับการสร้างรหัสผ่านที่สร้างความสับสนได้ที่หัวข้อการกำหนดค่า TLS/SSL สำหรับ Edge On Premises
  5. รีสตาร์ท Edge Management Server โดยใช้คำสั่งต่อไปนี้
    $ /<install_dir>/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 แล้ว ให้แก้ไข /<install_dir>/apigee/customer/application/management-server.properties เพื่อตั้งค่าพร็อพเพอร์ตี้ต่อไปนี้
    conf_webserver_http.turn.off=true
  3. รีสตาร์ท Edge Management Server โดยใช้คำสั่งต่อไปนี้
    $ /<install_dir>/apigee/apigee-service/bin/apigee-service edge-management-server restart
  4. แก้ไข /<install_dir>/apigee/customer/application/ui.properties เพื่อตั้งค่าพร็อพเพอร์ตี้ต่อไปนี้สำหรับ Edge UI หากไม่มีไฟล์ดังกล่าว ให้สร้างขึ้นมาดังนี้
    conf_apigee_apigee.mgmt.baseurl="https://MS_IP:8443/v1"

    โดยที่ MS_IP คือที่อยู่ IP ของเซิร์ฟเวอร์การจัดการและหมายเลขพอร์ตคือพอร์ตที่ระบุไว้ด้านบนโดย conf_webserver_ssl.port
  5. เฉพาะในกรณีที่คุณใช้ใบรับรองแบบ Self-signed เมื่อกำหนดค่าการเข้าถึง TLS ไปยัง Management API ด้านบน ให้เพิ่มพร็อพเพอร์ตี้ต่อไปนี้ลงใน ui.properties
    conf/application.conf+ws.acceptAnyCertificate=true

    ไม่เช่นนั้น Edge UI จะปฏิเสธใบรับรองแบบ Self-signed
  6. รีสตาร์ท Edge UI โดยใช้คำสั่งต่อไปนี้
    $ /<install_dir>/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=

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

conf_webserver_cert.alias=

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

conf_webserver_keymanager.password=

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