ศูนย์คู่มือ Ruk-Com PaaS

คู่มือการพัฒนา Deploy และดูแล Application บน Platform

RUK-COM PAAS / DATABASES

คู่มือ Encryption in Transit Add-On สำหรับ Database

คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี

ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง

คู่มือภาษาไทย

คำสั่ง ชื่อเมนู Parameter และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง

Database Redis ที่ได้รับการรับรองจาก Ruk-Com นั้นมาพร้อมกับส่วนเสริมในตัวที่ใช้ “การเข้ารหัสระหว่างทาง” ฟังก์ชั่นนี้รับประกันการปกป้องข้อมูลด้วยการเชื่อมต่อที่เข้ารหัส SSL/TLS ในขณะที่เคลื่อนย้ายระหว่าง Server หลังจากการติดตั้ง Add-on การสนับสนุนสำหรับการเชื่อมต่อที่ปลอดภัยจะได้รับการกำหนดค่าบน Port แยกต่างหาก6380ในขณะที่ยังคงรักษา Port เริ่มต้นไว้6379เพื่อยอมรับการเชื่อมต่อที่ไม่ได้เข้ารหัสสำหรับความเข้ากันได้แบบย้อนหลัง (หากจำเป็นสามารถปิดใช้งานได้ผ่านการตั้งค่า)

การติดตั้งส่วนเสริม

ส่วนเสริมสามารถติดตั้งได้ที่ด้านบนของ Node Redis เท่านั้น

  1. ใน DashboardPlatform ให้ไปที่ส่วนเสริมส่วนของ Layer Database Redis ที่เหมาะสมแล้วคลิกติดตั้งสำหรับการเชื่อมต่อที่เข้ารหัส Redisสารละลาย.

เคล็ดลับ:ส่วนเสริมยังมีให้จากตลาดและสามารถนำเข้าจาก Git RepositoryHub ที่เหมาะสม

Image 41: Redis SSL add-on2. ภายในหน้าต่างการติดตั้งที่เปิดอยู่ให้เลือกเป้าหมายEnvironmentและกลุ่ม Nodeตำแหน่งที่จะติดตั้งส่วนเสริม

Image 42: install Redis SSLคลิกติดตั้งเพื่อดำเนินการต่อ

  1. ภายในหนึ่งนาที Environment ของคุณจะได้รับการกำหนดค่า

Image 43: SSL add-on installed

บันทึก:ท่าเรือ6380ใช้สำหรับการเชื่อมต่อที่ปลอดภัยตามค่าเริ่มต้นและจะถูกเพิ่มลงในโดยอัตโนมัติกฎ Firewallระหว่างการติดตั้งส่วนเสริม

Image 44: Redis SSL firewall

คุณสามารถค้นหาใบรับรอง SSL ที่สร้างขึ้นภายใต้/var/lib/Ruk-Com PaaS/keys/SSL-TLSโฟลเดอร์

ข้อมูลจำเพาะของส่วนเสริม

ด้านล่างคุณสามารถเรียนรู้เกี่ยวกับกระบวนการสร้างใบรับรองและข้อมูลเฉพาะ:

  • ส่วนเสริมก่อนการติดตั้งเรดลี– ทางเลือก Go-based ที่มีมนุษยธรรมสำหรับทางการredis-cliคุณประโยชน์.
  • ใบรับรองถูกสร้างขึ้นด้วย/usr/local/sbin/selfcertgenคุณประโยชน์.
  • ใบรับรองจะลงนามด้วยตนเองและออกให้สำหรับชื่อ Host ของ Node นั้นๆหมายความว่าแต่ละ Node มีชุดใบรับรองของตัวเองและคุณต้องใช้ใบรับรองที่สอดคล้องกับ Node ที่เข้าถึงเพื่อตรวจสอบความถูกต้อง
  • เนื่องจากข้อกำหนดเฉพาะของ Redis ชื่อ Host สำรองจะถูกเพิ่มเมื่อสร้างใบรับรอง Server:

สำเนา

echo "subjectAltName = @alt_names

[alt_names]
IP.1 = ${ALTNAME}" > /tmp/altname.ext
RANDFILE=/tmp/.random openssl x509 -req -in ${CERT_DIR}/server-req.pem -days 3650 -CA ${ROOT_CERT} -CAkey ${ROOT_KEY} -set_serial 01 -extfile /tmp/altname.ext > ${CERT_DIR}/server.crt
  • ใบรับรองจะถูกเก็บไว้ภายใน/var/lib/Ruk-Com PaaS/keys/SSL-TLSโฟลเดอร์ (เข้าถึงได้ผ่านทางกุญแจทางลัดในตัวจัดการไฟล์) มีโฟลเดอร์ย่อยสองโฟลเดอร์:
    • Server– ใบรับรอง Server ใช้เพื่อจัดเตรียมการเข้ารหัส TLS ของการเชื่อมต่อกับ Database Redis
    • ลูกค้า– สามารถใช้ใบรับรอง Client ที่ดาวน์โหลดได้เพื่อตรวจสอบการเชื่อมต่อ Client กับ ServerDatabase

Image 46: Redis SSL certificates การกำหนดค่า Redis:

การกำหนดค่าส่วนเสริมทั้งหมดมีให้ผ่านทางแยกต่างหาก/etc/redis.confไฟล์การกำหนดค่า (เพิ่มลงในไฟล์รายการโปรดรายการในตัวจัดการไฟล์)

Image 47: Redis configuration fileด้านล่างนี้คุณสามารถตรวจสอบรายการการตั้งค่าที่เกี่ยวข้องกับ SSL ที่พบบ่อยที่สุดได้:

  • tls-Port- ระบุ Port ที่ใช้สำหรับการเชื่อมต่อ SSL (6380).
  • ท่าเรือ– ตั้งค่า Port ที่สามารถรับการเชื่อมต่อที่ไม่ได้เข้ารหัส (6379).

เคล็ดลับ:ค่าทั้งสองจะถูกแยกจากกันโดยเจตนาโดยค่าเริ่มต้นเพื่อให้แน่ใจว่ามีความเข้ากันได้แบบย้อนหลังหากคุณต้องการปิดการใช้งานการเชื่อมต่อที่ไม่ได้เข้ารหัสโดยสมบูรณ์ให้ตั้งค่าท่าเรือคำสั่งถึง0.

  • ไฟล์ tls-cert,ไฟล์ tls-key,tls-ca-cert-ไฟล์– คำสั่งระบุเส้นทางไปยังใบรับรอง SSL ฝั่ง Server
  • tls-auth-ลูกค้า– กำหนดค่าหาก Client (รวมถึง Server จำลอง) บน Port TLS จำเป็นต้องตรวจสอบสิทธิ์โดยใช้ใบรับรองฝั่ง Client ที่ถูกต้องตั้งค่าเป็น “ไม่จำเป็น” โดยค่าเริ่มต้น - หากระบุไว้ใบรับรอง Client จะได้รับการยอมรับและจะต้องถูกต้อง (แต่ไม่จำเป็น)
  • การจำลองแบบ tlsและtls-Cluster- สามารถเปิดใช้งานได้หากจำเป็นเพื่อรองรับการเชื่อมต่อโครงข่าย TLS ใน Cluster Redis

การกำหนดค่าส่วนเสริม

หลังการติดตั้งคุณจะพบส่วนเสริมภายใต้ส่วนเสริมแท็บสำหรับ Layer ที่เหมาะสม

Image 49: manage Redis SSL add-onที่นี่คุณสามารถคลิกออกใบรับรองใหม่อีกครั้งปุ่มเพื่อสร้างใบรับรอง SSL สำหรับการเชื่อมต่อที่ปลอดภัยอีกครั้ง

หากไม่ต้องการอีกต่อไปให้ลบส่วนเสริมออกจาก Layer โดยเลือกถอนการติดตั้งตัวเลือกในเมนูเสริมที่มุมขวาบน

การเชื่อมต่อที่ปลอดภัยกับ Redis

สำหรับการเชื่อมต่อที่ปลอดภัย (เราจะใช้redis-cliยูทิลิตีเป็นตัวอย่าง) ให้ระบุคำสั่งด้วยตัวเลือกต่อไปนี้:

เคล็ดลับ:คุณสามารถจัดเก็บรหัสผ่าน Database ไว้ในที่เฉพาะREDISCLI_AUTHตัวแปรเพื่อหลีกเลี่ยงการเปิดเผยในบรรทัดคำสั่ง:

สำเนา

export REDISCLI_AUTH={password}

สำเนา

redis-cli -p 6380 --tls --cacert /var/lib/jelastic/keys/SSL-TLS/client/root.crt {command}

Image 51: Redis secure connectคุณสามารถดำเนินการตามต้องการได้{สั่งการ}หรือละไว้เพื่อเชื่อมต่อกับ Database ในโหมดโต้ตอบ

หาก Server ต้องการการรับรองความถูกต้องโดยใช้ใบรับรองฝั่ง Client คุณสามารถระบุใบรับรองและคีย์ส่วนตัวที่เกี่ยวข้องได้โดยใช้--ใบรับรองและ--สำคัญParameter

สำเนา

redis-cli -p 6380 --tls --cert /var/lib/jelastic/keys/SSL-TLS/client/client.crt --key /var/lib/jelastic/keys/SSL-TLS/client/client.key --cacert /var/lib/jelastic/keys/SSL-TLS/client/root.crt {command}

Image 52: Redis secure connect certificatesสำหรับการเชื่อมต่อภายนอก Client จำเป็นต้องอัปโหลดไฟล์ใบรับรอง (ลูกค้า.crt,ลูกค้า.คีย์,root.crt) ไปยังคอมพิวเตอร์/Container/VM และใช้ไฟล์-ชมตัวเลือกเพื่อระบุชื่อ Host ระยะไกลหรือที่อยู่ IP

ตัวอย่างการกำหนดค่า SSL

  • บังคับให้เชื่อมต่อ SSL (สำหรับ Node แบบสแตนด์อโลน)

บังคับใช้การเชื่อมต่อที่เข้ารหัส TLS และปิดใช้งานการเชื่อมต่อที่ไม่ปลอดภัยสำหรับ Client โดยสมบูรณ์

  1. ไปที่/etc/redis.confไฟล์การกำหนดค่าและเปลี่ยน "ท่าเรือ” คำสั่งถึง0. มันจะปิดการใช้งานการเชื่อมต่อที่ไม่ได้เข้ารหัส

  2. ต่อไปให้เปลี่ยน “tls-Port” ไปยัง Port Redis เริ่มต้น6379ในไฟล์เดียวกัน

  3. หากคุณต้องการบังคับใช้ใบรับรอง Client (สำหรับการตรวจสอบสิทธิ์และ TLS ร่วมกัน) ให้ตั้งค่า "tls-auth-ลูกค้า” คำสั่งถึง “ใช่".

  4. ไปที่การตั้งค่า Firewall และลบกฎสำหรับ Port6380เพราะมันไม่จำเป็นอีกต่อไป

  5. สุดท้ายให้ Restart Container Redis เพื่อใช้การเปลี่ยนแปลง

ขณะนี้บริการ Redis พร้อมใช้งานผ่านการเชื่อมต่อ SSL บน Port เท่านั้น6379.

  • การเชื่อมต่อระหว่าง Cluster / Sentinel ผ่าน SSL

การเชื่อมต่อระหว่างกันของ Cluster Redis จะถูกเก็บไว้แบบธรรมดา (ไม่ปลอดภัย) ตามค่าเริ่มต้นช่วยให้มั่นใจได้ถึงความเข้ากันได้แบบย้อนหลังกับ Cluster ที่มีอยู่แล้วอย่างไรก็ตามหากคุณต้องการเปิดใช้งานการเข้ารหัสการเชื่อมต่อโครงข่ายให้ทำตามขั้นตอนด้านล่าง:

บันทึก:การปรับมาตราส่วนแบบอัตโนมัติและแบบแมนนวลอาจทำงานไม่ถูกต้องหลังจากการเปลี่ยนแปลงเนื่องจากได้รับการออกแบบสำหรับการเชื่อมต่อแบบธรรมดาที่ไม่ใช่ SSL

  1. หากคุณกำลังใช้โซลูชันแบบ Cluster ตรวจสอบให้แน่ใจว่า “tls-Cluster” คำสั่งใน/etc/redis.confไฟล์ถูกตั้งค่าเป็น “ใช่” (ไม่ใส่เครื่องหมายข้อคิดเห็นตัวเลือก)

  2. หากคุณกำลังใช้การจำลองแบบ Sentinel ให้ยกเลิกหมายเหตุ "การจำลองแบบ tls” เช่นกัน (ควรเป็น “ใช่" ค่า).

  3. “tls-auth-ลูกค้า” คำสั่งควรเก็บไว้เป็น “ไม่จำเป็น” (ค่าเริ่มต้น)

  4. การกำหนดค่า Cluster เริ่มต้นใช้ Port6379สำหรับการเชื่อมต่อโครงข่าย Cluster ดังนั้นคุณควรเปลี่ยน "tls-Port” คำสั่งถึง6379หรือเปลี่ยน Port Cluster/การจำลองเป็น6380.

  5. RestartCluster Redis เพื่อใช้การเปลี่ยนแปลง

  • การเชื่อมต่อโครงข่าย SSL ของ Cluster หลายภูมิภาค

เมื่อทำงานกับCluster Redis หลายภูมิภาคต้องใช้ใบรับรองหลักเดียวกันบนทุก Node ของ Environment ทั้งหมดเพื่อการเชื่อมต่อระหว่าง Node ผ่าน TLS ได้สำเร็จ

  1. ติดตั้งโปรแกรมเสริม SSL บน Environment แรกของ Cluster หลายภูมิภาค

  2. สำเนา/var/lib/Ruk-Com PaaS/keys/SSL-TLS/server/root.crtและ/var/lib/Ruk-Com PaaS/keys/SSL-TLS/server/root.crtไปที่/var/lib/Ruk-Com PaaS/keys/SSL-TLS/Directory บน Node ทั้งหมดของ Environment ที่สองและสาม

  3. ตอนนี้ให้ติดตั้งส่วนเสริม SSL ใน Environment เหล่านี้ตามปกติ - ใบรับรองหลักใหม่จะไม่ถูกสร้างขึ้นด้วยวิธีนี้