คู่มือ 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 เท่านั้น
- ใน DashboardPlatform ให้ไปที่ส่วนเสริมส่วนของ Layer Database Redis ที่เหมาะสมแล้วคลิกติดตั้งสำหรับการเชื่อมต่อที่เข้ารหัส Redisสารละลาย.
เคล็ดลับ:ส่วนเสริมยังมีให้จากตลาดและสามารถนำเข้าจาก Git RepositoryHub ที่เหมาะสม
2. ภายในหน้าต่างการติดตั้งที่เปิดอยู่ให้เลือกเป้าหมายEnvironmentและกลุ่ม Nodeตำแหน่งที่จะติดตั้งส่วนเสริม
- ภายในหนึ่งนาที Environment ของคุณจะได้รับการกำหนดค่า
บันทึก:ท่าเรือ6380ใช้สำหรับการเชื่อมต่อที่ปลอดภัยตามค่าเริ่มต้นและจะถูกเพิ่มลงในโดยอัตโนมัติกฎ 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
การกำหนดค่าส่วนเสริมทั้งหมดมีให้ผ่านทางแยกต่างหาก/etc/redis.confไฟล์การกำหนดค่า (เพิ่มลงในไฟล์รายการโปรดรายการในตัวจัดการไฟล์)
ด้านล่างนี้คุณสามารถตรวจสอบรายการการตั้งค่าที่เกี่ยวข้องกับ 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 ที่เหมาะสม
ที่นี่คุณสามารถคลิกออกใบรับรองใหม่อีกครั้งปุ่มเพื่อสร้างใบรับรอง 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}
คุณสามารถดำเนินการตามต้องการได้{สั่งการ}หรือละไว้เพื่อเชื่อมต่อกับ 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}
สำหรับการเชื่อมต่อภายนอก Client จำเป็นต้องอัปโหลดไฟล์ใบรับรอง (ลูกค้า.crt,ลูกค้า.คีย์,root.crt) ไปยังคอมพิวเตอร์/Container/VM และใช้ไฟล์-ชมตัวเลือกเพื่อระบุชื่อ Host ระยะไกลหรือที่อยู่ IP
ตัวอย่างการกำหนดค่า SSL
- บังคับให้เชื่อมต่อ SSL (สำหรับ Node แบบสแตนด์อโลน)
บังคับใช้การเชื่อมต่อที่เข้ารหัส TLS และปิดใช้งานการเชื่อมต่อที่ไม่ปลอดภัยสำหรับ Client โดยสมบูรณ์
-
ไปที่/etc/redis.confไฟล์การกำหนดค่าและเปลี่ยน "ท่าเรือ” คำสั่งถึง0. มันจะปิดการใช้งานการเชื่อมต่อที่ไม่ได้เข้ารหัส
-
ต่อไปให้เปลี่ยน “tls-Port” ไปยัง Port Redis เริ่มต้น6379ในไฟล์เดียวกัน
-
หากคุณต้องการบังคับใช้ใบรับรอง Client (สำหรับการตรวจสอบสิทธิ์และ TLS ร่วมกัน) ให้ตั้งค่า "tls-auth-ลูกค้า” คำสั่งถึง “ใช่".
-
ไปที่การตั้งค่า Firewall และลบกฎสำหรับ Port6380เพราะมันไม่จำเป็นอีกต่อไป
-
สุดท้ายให้ Restart Container Redis เพื่อใช้การเปลี่ยนแปลง
ขณะนี้บริการ Redis พร้อมใช้งานผ่านการเชื่อมต่อ SSL บน Port เท่านั้น6379.
- การเชื่อมต่อระหว่าง Cluster / Sentinel ผ่าน SSL
การเชื่อมต่อระหว่างกันของ Cluster Redis จะถูกเก็บไว้แบบธรรมดา (ไม่ปลอดภัย) ตามค่าเริ่มต้นช่วยให้มั่นใจได้ถึงความเข้ากันได้แบบย้อนหลังกับ Cluster ที่มีอยู่แล้วอย่างไรก็ตามหากคุณต้องการเปิดใช้งานการเข้ารหัสการเชื่อมต่อโครงข่ายให้ทำตามขั้นตอนด้านล่าง:
บันทึก:การปรับมาตราส่วนแบบอัตโนมัติและแบบแมนนวลอาจทำงานไม่ถูกต้องหลังจากการเปลี่ยนแปลงเนื่องจากได้รับการออกแบบสำหรับการเชื่อมต่อแบบธรรมดาที่ไม่ใช่ SSL
-
หากคุณกำลังใช้โซลูชันแบบ Cluster ตรวจสอบให้แน่ใจว่า “tls-Cluster” คำสั่งใน/etc/redis.confไฟล์ถูกตั้งค่าเป็น “ใช่” (ไม่ใส่เครื่องหมายข้อคิดเห็นตัวเลือก)
-
หากคุณกำลังใช้การจำลองแบบ Sentinel ให้ยกเลิกหมายเหตุ "การจำลองแบบ tls” เช่นกัน (ควรเป็น “ใช่" ค่า).
-
“tls-auth-ลูกค้า” คำสั่งควรเก็บไว้เป็น “ไม่จำเป็น” (ค่าเริ่มต้น)
-
การกำหนดค่า Cluster เริ่มต้นใช้ Port6379สำหรับการเชื่อมต่อโครงข่าย Cluster ดังนั้นคุณควรเปลี่ยน "tls-Port” คำสั่งถึง6379หรือเปลี่ยน Port Cluster/การจำลองเป็น6380.
-
RestartCluster Redis เพื่อใช้การเปลี่ยนแปลง
- การเชื่อมต่อโครงข่าย SSL ของ Cluster หลายภูมิภาค
เมื่อทำงานกับCluster Redis หลายภูมิภาคต้องใช้ใบรับรองหลักเดียวกันบนทุก Node ของ Environment ทั้งหมดเพื่อการเชื่อมต่อระหว่าง Node ผ่าน TLS ได้สำเร็จ
-
ติดตั้งโปรแกรมเสริม SSL บน Environment แรกของ Cluster หลายภูมิภาค
-
สำเนา/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 ที่สองและสาม
-
ตอนนี้ให้ติดตั้งส่วนเสริม SSL ใน Environment เหล่านี้ตามปกติ - ใบรับรองหลักใหม่จะไม่ถูกสร้างขึ้นด้วยวิธีนี้




