ณ เดือนตุลาคม 2026 เอกสารสำหรับผู้ดูแลระบบ Nextcloud 35 เวอร์ชันเสถียรได้อธิบายประเด็นสำคัญให้ชัดเจนยิ่งกว่าคู่มือเก่าๆ หลายฉบับ นั่นคือ การเข้ารหัสฝั่งเซิร์ฟเวอร์ (SSE) มีจุดประสงค์หลักเพื่อปกป้องไฟล์ที่จัดเก็บไว้บนพื้นที่จัดเก็บข้อมูลภายนอกของบุคคลที่สาม และโหมดคีย์หลักเริ่มต้นให้ประสิทธิภาพที่ดีกว่าและเข้ากันได้กับการตรวจสอบสิทธิ์ที่กว้างกว่าคีย์ต่อผู้ใช้ เอกสารเดียวกันนี้ยังระบุด้วยว่าไฟล์ที่เข้ารหัสแล้วจะเพิ่มพื้นที่จัดเก็บข้อมูลเพียงประมาณ 1% เท่านั้น เมื่อเทียบกับพื้นที่จัดเก็บข้อมูลที่เพิ่มขึ้นอย่างมากในเวอร์ชันก่อน Nextcloud 25
นั่นไม่ได้หมายความว่าการเข้ารหัสจะฟรีอย่างแท้จริง การอ่านและเขียนข้อมูลที่เข้ารหัสทุกครั้งต้องอาศัยการประมวลผลทางด้านการเข้ารหัส ดังนั้นไม่มีคู่มือใดที่รับประกันได้ว่าจะไม่มีการใช้ CPU หรือความหน่วงแฝงบนเซิร์ฟเวอร์ทุกเครื่อง เป้าหมายในทางปฏิบัติจึงแตกต่างออกไป นั่นคือ การเปิดใช้งานการเข้ารหัสในลักษณะที่หลีกเลี่ยงการชะลอตัวที่สังเกตได้สำหรับผู้ใช้ ควบคุมภาระของฐานข้อมูลและการล็อก และเข้ารหัสเฉพาะพื้นที่จัดเก็บข้อมูลที่จำเป็นจริงๆ เท่านั้น
ก่อนทำการเปลี่ยนแปลงใดๆ โปรดตรวจสอบสถานะการเข้ารหัสปัจจุบันและบันทึกค่าพื้นฐานสำหรับระบบนั้นไว้
การเข้ารหัสฝั่งเซิร์ฟเวอร์ของ Nextcloud ปกป้องอะไรบ้าง
Nextcloud SSE เข้ารหัสเนื้อหาไฟล์บนเซิร์ฟเวอร์ก่อนที่จะจัดเก็บ เมื่อผู้ใช้ดาวน์โหลดหรือเปิดไฟล์ผ่าน Nextcloud เซิร์ฟเวอร์จะถอดรหัสก่อนส่งไปยังผู้ใช้ที่ได้รับอนุญาต กุญแจเข้ารหัสจะยังคงอยู่บนเซิร์ฟเวอร์ของ Nextcloud ซึ่งเป็นเหตุผลว่าทำไม SSE จึงมีประโยชน์อย่างยิ่งเมื่อข้อมูลไฟล์จริงอยู่บนผู้ให้บริการจัดเก็บข้อมูลภายนอกที่คุณไม่ไว้วางใจอย่างเต็มที่
SSE ไม่ได้ซ่อนชื่อไฟล์หรือโครงสร้างไดเร็กทอรี และไม่ได้ปกป้องไฟล์จากผู้ดูแลระบบ Nextcloud ที่เป็นอันตรายหรือเซิร์ฟเวอร์แอปพลิเคชันที่ถูกบุกรุกอย่างสมบูรณ์ หากข้อกำหนดคือแม้แต่ผู้ดูแลระบบเซิร์ฟเวอร์ก็ต้องไม่สามารถอ่านไฟล์ได้ รูปแบบการเข้ารหัสแบบ end-to-end ของ Nextcloud จะเป็นชั้นความปลอดภัยที่เหมาะสมกว่า การเปรียบเทียบอย่างเป็นทางการมีอยู่ในเอกสารการเข้ารหัสฝั่งเซิร์ฟเวอร์ของ Nextcloud
เลือกการกำหนดค่าที่ก่อให้เกิดงานที่ไม่จำเป็นน้อยที่สุด
| การตัดสินใจ |
ทางเลือกที่มีต้นทุนต่ำกว่า |
เมื่อใดควรเลือกอย่างอื่น |
| การจัดการที่สำคัญ |
คีย์หลัก ซึ่งเป็นโหมดเริ่มต้นและแนะนำสำหรับระบบส่วนใหญ่ในปัจจุบัน |
ควรใช้คีย์เฉพาะผู้ใช้เมื่อจำเป็นต้องแลกเปลี่ยนด้านความปลอดภัยดังกล่าวโดยเฉพาะ และข้อจำกัดในการตรวจสอบสิทธิ์/การกู้คืนนั้นเป็นที่ยอมรับได้ |
| ขอบเขตการจัดเก็บข้อมูล |
เข้ารหัสข้อมูลในอุปกรณ์จัดเก็บข้อมูลภายนอก ในขณะที่ปล่อยให้ข้อมูลในอุปกรณ์จัดเก็บข้อมูลภายในเครื่องไม่ต้องเข้ารหัส เมื่อรูปแบบภัยคุกคามมาจากผู้ให้บริการภายนอก |
ควรเข้ารหัสพื้นที่จัดเก็บข้อมูลในบ้านด้วย เมื่อต้องการปกป้องข้อมูลที่จัดเก็บอยู่บนพื้นที่จัดเก็บข้อมูล Nextcloud ในเครื่องเช่นกัน |
| การล็อกแบ็กเอนด์ |
การล็อกไฟล์ธุรกรรมโดยใช้ Redis หรือ Valkey |
การล็อกฐานข้อมูลอาจยอมรับได้สำหรับระบบขนาดเล็กมาก แต่จะเพิ่มภาระที่ไม่จำเป็นให้กับฐานข้อมูลเมื่อมีปริมาณการใช้งานสูงขึ้น |
ขั้นตอนที่ 1: สำรองข้อมูลอินสแตนซ์และกำหนดค่าพื้นฐานด้านประสิทธิภาพ
คีย์เข้ารหัสและรหัสลับของอินสแตนซ์เป็นข้อมูลสำคัญสำหรับการกู้คืนข้อมูล Nextcloud แนะนำอย่างยิ่งให้สำรองข้อมูลการกำหนดค่าอินสแตนซ์และคีย์เข้ารหัสก่อนเปิดใช้งาน SSE การสูญหายของคีย์ที่จำเป็นหรือรหัสลับของอินสแตนซ์อาจทำให้ข้อมูลที่เข้ารหัสไม่สามารถกู้คืนได้
ก่อนทำการเปลี่ยนแปลง ให้ทำการวัดค่าพื้นฐานอย่างง่ายๆ โดยใช้ปริมาณงานที่ผู้ใช้ของคุณให้ความสำคัญ วัดการอัปโหลดและดาวน์โหลดตัวอย่างบางส่วน บันทึกการใช้งาน CPU ของ PHP-FPM โหลดฐานข้อมูล ความหน่วงในการจัดเก็บข้อมูล และเวลาตอบสนองของแอปไฟล์ คุณไม่จำเป็นต้องทำการทดสอบในห้องปฏิบัติการ คุณต้องการการทดสอบก่อนและหลังที่ทำซ้ำได้ ซึ่งจะบอกคุณได้ว่าการเปลี่ยนแปลงนั้นส่งผลต่อพฤติกรรมที่ผู้ใช้มองเห็นหรือไม่
นอกจากนี้ ให้ตัดสินใจว่าคุณจำเป็นต้องเข้ารหัสพื้นที่จัดเก็บข้อมูลในบ้านหรือไม่ หากเป้าหมายของคุณคือการปกป้อง S3, SMB, object-store หรือระบบจัดเก็บข้อมูลภายนอกอื่นๆ จากผู้ให้บริการจัดเก็บข้อมูล การเก็บข้อมูลในบ้านไว้นอก SSE จะช่วยหลีกเลี่ยงการทำงานด้านการเข้ารหัสที่ไม่ก่อให้เกิดประโยชน์เพิ่มเติมสำหรับรูปแบบภัยคุกคามนั้น
ขั้นตอนที่ 2: แก้ไขปัญหาการแคชและการล็อกไฟล์ก่อนเปิดใช้งานการเข้ารหัส
นี่คือขั้นตอนการเตรียมการด้านประสิทธิภาพที่สำคัญที่สุด Nextcloud แนะนำให้ใช้การแคชหน่วยความจำเพื่อประสิทธิภาพสูงสุด และโดยเฉพาะอย่างยิ่งแนะนำให้ใช้ APCu สำหรับการแคชในเครื่อง ร่วมกับ Redis หรือแบ็กเอนด์ที่เข้ากันได้สำหรับการล็อกไฟล์แบบธุรกรรม การล็อกไฟล์แบบธุรกรรมมีความสำคัญอย่างยิ่งสำหรับไฟล์ที่เข้ารหัส เนื่องจาก Nextcloud ต้องประสานงานการเปลี่ยนแปลงไฟล์อย่างปลอดภัยในขณะที่การเข้ารหัสและการดำเนินการจัดเก็บข้อมูลเกิดขึ้น
กำหนดค่าการแคชหน่วยความจำภายในเครื่องและระบบล็อกข้อมูลที่ใช้ Redis หรือ Valkey ก่อนเพิ่มการเข้ารหัสข้อมูล
การกำหนดค่าเซิร์ฟเวอร์เดี่ยวทั่วไปจะใช้ APCu สำหรับแคชภายในเครื่อง และ Redis สำหรับการล็อก:
'memcache.local' => '\OC\Memcache\APCu',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => '127.0.0.1',
'port' => 6379,
'dbindex' => 0,
],
หาก Redis ทำงานอยู่บนโฮสต์เดียวกัน เอกสารเกี่ยวกับการล็อกไฟล์ของ Nextcloud แนะนำให้ใช้ Unix socket ในกรณีที่ทำได้ เอกสาร Nextcloud 35 เวอร์ชันใหม่กว่ายังอธิบายถึงตัวเลือก KeyValueCache ที่มาพร้อมกับระบบสำหรับเซิร์ฟเวอร์ที่เข้ากันได้กับ Redis หรือ Valkey ซึ่งสามารถให้การล็อกแบบธุรกรรมได้โดยไม่ต้องใช้ส่วนขยาย phpredis ของ PHP ควรใช้การกำหนดค่าที่ตรงกับการใช้งานของคุณ แทนที่จะคัดลอกตัวอย่างโดยไม่พิจารณาให้ดี
ควรเปิดใช้งานและกำหนดขนาดของ PHP OPcache เพื่อไม่ให้ลบโค้ดที่คอมไพล์แล้วซ้ำๆ คู่มือการปรับแต่งเซิร์ฟเวอร์ของ Nextcloud ระบุว่า OPcache ช่วยปรับปรุงประสิทธิภาพของแอปพลิเคชัน PHP และจะแจ้งเตือนผู้ดูแลระบบเมื่อขีดจำกัดที่กำหนดไว้เกิน 90% ของการใช้งาน โปรดตรวจสอบคู่มือการแคชหน่วยความจำอย่างเป็นทางการคู่มือการล็อกไฟล์แบบธุรกรรมและคู่มือการปรับแต่งเซิร์ฟเวอร์ก่อนการใช้งานจริง
ขั้นตอนที่ 3: เปิดใช้งานโมดูลการเข้ารหัสเริ่มต้นและใช้โหมดมาสเตอร์คีย์
สำหรับการใช้งานส่วนใหญ่ในปัจจุบัน โหมดมาสเตอร์คีย์เป็นจุดเริ่มต้นที่ดีที่สุด เอกสาร Nextcloud 35 ระบุว่าเป็นค่าเริ่มต้น แนะนำให้ใช้สำหรับระบบส่วนใหญ่ และระบุว่าให้ประสิทธิภาพที่ดีกว่าและเข้ากันได้กับวิธีการเข้าสู่ระบบที่หลากหลายกว่า ข้อเสียนั้นชัดเจน: ผู้ดูแลระบบที่ควบคุมเซิร์ฟเวอร์สามารถถอดรหัสไฟล์ของผู้ใช้ได้ หากยอมรับไม่ได้ การใช้ SSE กับมาสเตอร์คีย์จึงไม่ใช่ขอบเขตความปลอดภัยที่เหมาะสม
ให้ใช้โหมดคีย์หลักตามค่าเริ่มต้น เว้นแต่ข้อกำหนดด้านความปลอดภัยของคุณจะระบุอย่างชัดเจนว่าต้องใช้คีย์ต่อผู้ใช้แต่ละราย
ในเว็บอินเทอร์เฟซ ให้เปิดส่วนการเข้ารหัสฝั่งเซิร์ฟเวอร์ในการตั้งค่าผู้ดูแลระบบ เปิดใช้งานการเข้ารหัสฝั่งเซิร์ฟเวอร์ จากนั้นเปิดใช้งานโมดูลการเข้ารหัสเริ่มต้นของ Nextcloud จากแอป หาก Nextcloud แจ้งว่าไม่มีโมดูลการเข้ารหัสใด ๆ โหลดอยู่ กลับไปที่การตั้งค่าการเข้ารหัสและยืนยันว่าได้เลือกโมดูลแล้ว ออกจากระบบแล้วเข้าสู่ระบบใหม่อีกครั้งเพื่อให้คีย์การเข้ารหัสได้รับการเริ่มต้นใช้งาน
นอกจากนี้ คุณยังสามารถจัดการการเข้ารหัสได้ด้วยoccเอกสารอ้างอิงคำสั่งปัจจุบันระบุลำดับดังต่อไปนี้:
sudo -E -u www-data php occ app:enable encryption
sudo -E -u www-data php occ encryption:enable
sudo -E -u www-data php occ encryption:status
หากจุดประสงค์ของการใช้งาน SSE คือการจัดเก็บข้อมูลภายนอกเท่านั้น ให้ยกเลิกการเลือกเข้ารหัสข้อมูลในที่จัดเก็บข้อมูลภายในเครื่องก่อนที่จะดำเนินการใช้งานในวงกว้าง การตัดสินใจดังกล่าวสามารถลดปริมาณข้อมูลที่ต้องผ่านชั้นการเข้ารหัสได้อย่างมาก
ขั้นตอนที่ 4: เข้ารหัสการเชื่อมต่อภายนอกที่ต้องการ และตรวจสอบด้วยการรับส่งข้อมูลจริง
การเข้ารหัสพื้นที่จัดเก็บข้อมูลภายนอกจะถูกกำหนดค่าต่อการเชื่อมต่อแต่ละครั้ง เปิดใช้งานการเข้ารหัสเฉพาะสำหรับการเชื่อมต่อที่จำเป็น จากนั้นอัปโหลดไฟล์ตัวอย่างผ่าน Nextcloud และดาวน์โหลดอีกครั้ง ตรวจสอบการเข้าถึงผ่านขั้นตอนการทำงานบนเดสก์ท็อป มือถือ WebDAV หรือเบราว์เซอร์แบบเดียวกับที่ผู้ใช้ของคุณใช้งานจริง
เปิดใช้งานการเข้ารหัสบนไดรฟ์จัดเก็บข้อมูลภายนอกที่อยู่ในแบบจำลองภัยคุกคามของคุณ แทนที่จะเข้ารหัสทุกอย่างโดยอัตโนมัติ
หลังจากทำการทดสอบการทำงานแล้ว ให้ทำการวัดค่าพื้นฐานซ้ำอีกครั้งจากขั้นตอนที่ 1 เปรียบเทียบเวลาในการอัปโหลด เวลาในการดาวน์โหลด การใช้งาน CPU กิจกรรมของฐานข้อมูล และความหน่วงในการจัดเก็บข้อมูล หากการเปลี่ยนแปลงมีน้อยและเวลาตอบสนองที่ผู้ใช้เห็นมีความเสถียร แสดงว่าเซิร์ฟเวอร์มีพื้นที่เหลือเฟือ หากประสิทธิภาพลดลงอย่างรวดเร็ว อย่าคิดว่าการเข้ารหัสเป็นสาเหตุเดียว ตรวจสอบการล็อกไฟล์ในฐานข้อมูล การทำงานของ PHP-FPM ที่มากเกินไป การจัดเก็บข้อมูลภายนอกที่ช้า OPcache ไม่เพียงพอ หรือปัญหาการเชื่อมต่อ Redis ก่อน
หากคุณต้องการเข้ารหัสไฟล์ที่มีอยู่แล้วก่อนที่จะเปิดใช้งาน SSE นั้น Nextcloud มีฟังก์ชันencryption:encrypt-allนี้ให้ใช้งาน ให้ถือว่านี่เป็นงานการย้ายข้อมูล ไม่ใช่คำขอแบบโต้ตอบปกติ เนื่องจากอาจมีการเปลี่ยนแปลงข้อมูลจำนวนมาก ดังนั้นควรวางแผนดำเนินการในช่วงเวลาการบำรุงรักษา และตรวจสอบให้แน่ใจว่าแผนการสำรองข้อมูลและการย้อนกลับนั้นรัดกุม คำสั่งการเข้ารหัสที่มีอยู่จะถูกบันทึกไว้ในเอกสารอ้างอิงการเข้ารหัส occ อย่างเป็นทางการ
วิธีสังเกตว่าการเปิดตัวผลิตภัณฑ์หรือบริการนั้นประสบความสำเร็จหรือไม่
- ผู้ใช้ไม่สังเกตเห็นความเปลี่ยนแปลงอย่างมีนัยสำคัญในเวลาการอัปโหลดหรือดาวน์โหลดลองเปรียบเทียบขนาดไฟล์และโปรแกรมที่ใช้งานเหมือนกันก่อนและหลังการเปลี่ยนแปลงดู
- ปริมาณการใช้งานฐานข้อมูลคงที่การเพิ่มขึ้นอย่างมากของกิจกรรมในฐานข้อมูลอาจบ่งชี้ว่าการล็อกไฟล์ยังคงใช้ฐานข้อมูลแทนที่จะใช้ Redis หรือ Valkey
- เวิร์กเกอร์ PHP ไม่ได้ขาดแคลน CPUการเข้ารหัสเพิ่มภาระการทำงานของ CPU ดังนั้นอินสแตนซ์ที่ทำงานใกล้เต็มประสิทธิภาพอยู่แล้วจึงต้องการพื้นที่ว่างเพิ่มขึ้น
- ความหน่วงในการจัดเก็บข้อมูลภายนอกยังคงเป็นปัจจัยหลักเมื่อเหมาะสม การจัดเก็บข้อมูลช้าบน S3, SMB หรือการจัดเก็บข้อมูลแบบอ็อบเจ็กต์ระยะไกล อาจส่งผลเสียมากกว่าต้นทุนด้านการเข้ารหัสได้
- ไม่มีคำเตือนเกี่ยวกับการเข้ารหัสหรือคีย์ปรากฏในภาพรวมผู้ดูแลระบบหรือบันทึกต่างๆแก้ไขคำเตือนเหล่านั้นก่อนที่จะขยายการใช้งาน
ข้อผิดพลาดทั่วไปที่ทำให้เกิดความล่าช้าโดยไม่จำเป็น
เข้ารหัสพื้นที่จัดเก็บข้อมูลภายในบ้านเมื่อต้องการการปกป้องเฉพาะพื้นที่จัดเก็บข้อมูลภายนอกเท่านั้น
การทำเช่นนี้จะเพิ่มปริมาณการรับส่งข้อมูลแบบเข้ารหัสโดยไม่ได้แก้ไขภัยคุกคามที่แท้จริง ควรเลือกขอบเขตการเข้ารหัสให้เหมาะสมกับเหตุผลที่คุณเปิดใช้งาน SSE
การปล่อยให้มีการล็อกธุรกรรมอยู่ในฐานข้อมูล
เอกสารของ Nextcloud ระบุว่าระบบล็อกฐานข้อมูลเริ่มต้นนั้นสร้างภาระให้กับฐานข้อมูลอย่างมาก การใช้แคชล็อกที่ใช้ Redis หรือ Valkey เป็นหนึ่งในวิธีที่ตรงที่สุดในการขจัดปัญหาคอขวดนี้
การเข้ารหัสข้อมูลจำนวนมากในช่วงเวลาที่มีผู้ใช้งานหนาแน่น
การรับส่งข้อมูลแบบโต้ตอบและการเข้ารหัสข้อมูลแบบเต็มรูปแบบแย่งชิงทรัพยากร CPU, I/O, PHP workers และแบนด์วิดท์ในการจัดเก็บข้อมูล ควรแยกงานการย้ายข้อมูลออกจากปริมาณการใช้งานปกติในระบบการผลิต
การใช้ SSE เป็นกลไกป้องกันเซิร์ฟเวอร์ Nextcloud ที่ถูกบุกรุก
คีย์ SSE สามารถเข้าถึงได้โดยเซิร์ฟเวอร์ ดังนั้นผู้ดูแลระบบที่เป็นอันตรายหรือเซิร์ฟเวอร์ที่ถูกบุกรุกอย่างสมบูรณ์ก็ยังคงอยู่ภายในขอบเขตความเชื่อถือ ควรใช้การเข้ารหัสแบบ end-to-end เมื่อนั่นคือภัยคุกคามที่คุณต้องการจัดการ
สรุปแล้ว
วิธีที่ปลอดภัยที่สุดในการเปิดใช้งานการเข้ารหัสฝั่งเซิร์ฟเวอร์ของ Nextcloud โดยไม่ทำให้ประสิทธิภาพลดลงอย่างเห็นได้ชัด คือ การจำกัดขอบเขตให้แคบ ใช้คีย์หลักเริ่มต้นเมื่อรูปแบบความเชื่อถือเหมาะสม กำหนดค่า APCu และ Redis หรือ Valkey locking ก่อน และทดสอบประสิทธิภาพการทำงานจริงก่อนและหลังการเปลี่ยนแปลง คำแนะนำของ Nextcloud 35 ในปัจจุบันสนับสนุนแนวทางนี้: โหมดคีย์หลักเป็นค่าเริ่มต้นที่เป็นมิตรต่อประสิทธิภาพ การจัดเก็บข้อมูลภายนอกเป็นกรณีการใช้งาน SSE หลัก และค่าใช้จ่ายเพิ่มเติมสำหรับขนาดไฟล์ที่เข้ารหัสอยู่ที่ประมาณ 1%
เริ่มต้นด้วยคู่มือการเข้ารหัสฝั่งเซิร์ฟเวอร์อย่างเป็นทางการของ Nextcloud 35และรายละเอียดทางเทคนิคเกี่ยวกับการเข้ารหัสฝั่งเซิร์ฟเวอร์เอกสารเหล่านั้นควรเป็นแหล่งข้อมูลที่ถูกต้องที่สุดสำหรับพฤติกรรมการจัดการคีย์ คำสั่งการย้ายข้อมูล และข้อจำกัดเฉพาะเวอร์ชัน