เพิ่มส่วนหัว HSTS ที่ปลายทาง HTTPS ที่ให้บริการ Nextcloud

คำเตือน “Strict-Transport-Security” ของ Nextcloud หมายความว่าการตรวจสอบไม่พบส่วนหัว HSTS ที่มีอายุmax-ageอย่างน้อย15552000180 วัน (วินาที) ในการตอบสนอง HTTPS สาธารณะ ให้เพิ่มส่วนหัวดังกล่าวที่เว็บเซิร์ฟเวอร์หรือพร็อกซีแบบย้อนกลับที่ให้บริการ HTTPS จากนั้นทดสอบ URL สาธารณะนั้นอีกครั้ง HSTS ไม่ใช่การตั้งค่าใน Nextcloud config.phpและการตอบสนอง HTTP ธรรมดาไม่สามารถสร้างนโยบาย HSTS ในเบราว์เซอร์ได้

สิ่งที่ควรตรวจสอบก่อนเปลี่ยนการตั้งค่า

  • ตรวจสอบว่าเว็บไซต์ Nextcloud โหลดได้อย่างถูกต้องผ่าน HTTPS และแสดงใบรับรองที่ถูกต้องสำหรับชื่อโฮสต์ของเว็บไซต์
  • ระบุว่าบริการใดเป็นผู้ยุติการเชื่อมต่อ TLS: Apache, NGINX, โหลดบาลานเซอร์, คอนเทนเนอร์อิงเกรส หรือพร็อกซีภายนอก
  • ตรวจสอบว่าบริการนั้นได้ตั้งค่าไว้แล้วหรือStrict-Transport-Securityไม่ ส่งนโยบายที่กำหนดไว้ล่วงหน้าเพียงหนึ่งเดียวจากปลายทาง TLS ที่เปิดเผยต่อสาธารณะ ส่วนหัวที่ซ้ำกันหรือขัดแย้งกันจะทำให้การตรวจสอบสับสน
  • ตรวจสอบว่าโดเมนย่อยทั้งหมดพร้อมใช้งาน HTTPS หรือไม่ก่อนที่จะเพิ่มincludeSubDomainsอย่าเปิดใช้งานpreloadเพื่อล้างคำเตือนนี้อย่างรวดเร็ว

HSTS แจ้งให้เบราว์เซอร์ทราบว่าการเชื่อมต่อกับชื่อโฮสต์ในอนาคตจะต้องใช้ HTTPS เท่านั้น ช่วยป้องกันการลดระดับไปใช้ HTTP หลังจากที่เบราว์เซอร์ได้รับนโยบายนี้แล้ว HSTS ไม่ได้มาแทนที่ TLS ไม่ได้แก้ไขใบรับรองที่ไม่ถูกต้อง หรือเปลี่ยนเส้นทางการเข้าชม HTTP ครั้งแรก ควรตั้งค่าการเปลี่ยนเส้นทาง HTTP ไปยัง HTTPS แยกต่างหากด้วย คู่มือการดูแลระบบของ Nextcloud 35 ระบุเวลาขั้นต่ำ 15552000 วินาที และแนะนำให้ตั้งค่าส่วนหัวในเว็บเซิร์ฟเวอร์ จุดบังคับใช้จริงในการใช้งานพร็อกซีคือส่วนประกอบที่ส่งการตอบกลับไปยังผู้เข้าชม

กำหนดนโยบายพื้นฐาน

นโยบายเริ่มต้นแบบอนุรักษ์นิยมสำหรับชื่อโฮสต์ Nextcloud คือ:

Strict-Transport-Security: max-age=15552000

วิธีนี้ตรงตามข้อกำหนดระยะเวลาใช้งานขั้นต่ำของเอกสาร Nextcloud โดยไม่ต้องใช้การกำหนดนโยบายกับทุกโดเมนย่อยโดยอัตโนมัติ เมื่อคุณยืนยันแล้วว่าโดเมนย่อยที่เกี่ยวข้องทั้งหมดรองรับ HTTPS อย่างต่อเนื่อง คุณสามารถพิจารณาเพิ่ม `<http://www.nexcloud.com/next ; includeSubDomains...

Apache

สำหรับโฮสต์เสมือน Apache TLS ให้เปิดใช้งานmod_headersและวางคำสั่งไว้ภายในโฮสต์เสมือน HTTPS ไม่ใช่เฉพาะโฮสต์การเปลี่ยนเส้นทางพอร์ต 80 เท่านั้น:

<VirtualHost *:443>
    ServerName cloud.example.com
    # Keep the existing TLS and Nextcloud configuration here.
    <IfModule mod_headers.c>
        Header always set Strict-Transport-Security "max-age=15552000"
    </IfModule>
</VirtualHost>

แทนที่ชื่อโฮสต์ตัวอย่างและคงใบรับรองและพร็อกซีหรือการกำหนดค่า PHP ที่มีอยู่ของคุณไว้ ตัวอย่างการเสริมความปลอดภัย Apache ของ Nextcloud ใช้Header always setกับโฮสต์เสมือน HTTPS ตรวจสอบความถูกต้องของการกำหนดค่า Apache ด้วยคำสั่ง config-test ที่รองรับโดยระบบปฏิบัติการของคุณ จากนั้นรีโหลด Apache เฉพาะเมื่อการทดสอบผ่านเท่านั้น

เอ็นจินซ์

ใน NGINX ให้เพิ่มส่วนหัวภายในserverบล็อกที่รับฟังการเชื่อมต่อ HTTPS บนชื่อโฮสต์ Nextcloud สาธารณะ:

server {
    listen 443 ssl;
    server_name cloud.example.com;
    # Keep your existing TLS and Nextcloud locations here.
    add_header Strict-Transport-Security "max-age=15552000" always;
}

อย่าคัดลอกส่วนนี้ไปวางแทนที่การตั้งค่าเดิมของเซิร์ฟเวอร์ทั้งหมด การสืบทอดส่วนหัวของ NGINX อาจขึ้นอยู่กับว่าตำแหน่งย่อยกำหนดadd_headerคำสั่งเฉพาะของตนเองหรือไม่ โปรดตรวจสอบการตั้งค่าที่ใช้งานได้จริงและทดสอบการตอบสนองที่เป็นตัวอย่าง รวมถึงไฟล์คงที่และปลายทาง DAV ตัวอย่าง NGINX อย่างเป็นทางการของ Nextcloud มีการตั้งค่า HSTS ในการกำหนดค่า HTTPS และเตือนผู้ดูแลระบบเกี่ยวกับการเปิดใช้งานการโหลดล่วงหน้า

รีเวิร์สพร็อกซีหรืออินเกรส

หากโหลดบาลานเซอร์ อินเกรส หรือพร็อกซีโฮสต์ยุติ HTTPS ก่อนส่งต่อทราฟฟิกไปยัง Nextcloud ให้ตั้งค่า HSTS ที่เลเยอร์ TLS สาธารณะนั้น เว้นแต่สถาปัตยกรรมของคุณจะเพิ่มไว้ที่อัปสตรีมที่เชื่อถือได้โดยเจตนา ส่วนหัวที่เพิ่มโดยแบ็กเอนด์เท่านั้นอาจถูกลบหรือแทนที่โดยพร็อกซี ในทางกลับกัน การตั้งค่าที่ทั้งสองเลเยอร์อาจทำให้เกิดค่าซ้ำกันได้ ตรวจสอบการกำหนดค่า response-header ของพร็อกซีและตรวจสอบให้แน่ใจว่าเส้นทาง HTTPS ของพร็อกซีนั้นเป็นเส้นทางที่กำลังทดสอบอยู่ รักษาการตั้งค่า trusted-proxy และ URL HTTPS ของ Nextcloud ให้สอดคล้องกับการปรับใช้ที่มีอยู่ แต่ห้ามใช้การตั้งค่าเหล่านั้นแทนการส่งส่วนหัว

ตรวจสอบความถูกต้องของการตอบรับจากประชาชน

  1. ใช้โปรแกรมตรวจสอบไวยากรณ์ของแพลตฟอร์มเพื่อตรวจสอบการตั้งค่าเว็บเซิร์ฟเวอร์หรือพร็อกซีที่เปลี่ยนแปลงไป
  2. โหลดซ้ำหรือปรับใช้การกำหนดค่าที่ตรวจสอบแล้ว
  3. ร้องขอที่อยู่ HTTPS สาธารณะและตรวจสอบส่วนหัวการตอบกลับ: curl -sSI https://cloud.example.com/มองหาStrict-Transport-Securityบรรทัดหนึ่งที่max-ageมีอย่าง15552000น้อย
  4. ในเครื่องมือสำหรับนักพัฒนาของเบราว์เซอร์ ให้ตรวจสอบการตอบสนองจากชื่อโฮสต์สาธารณะเดียวกัน ซึ่งอาจเผยให้เห็นพร็อกซีที่เปลี่ยนแปลงส่วนหัว หรือเส้นทางที่ข้ามโฮสต์เสมือนที่คาดไว้
  5. รีเฟรชหน้าการจัดการ → ภาพรวมของ Nextcloud และรอให้การตรวจสอบความปลอดภัยรีเฟรชเสร็จสมบูรณ์

หากcurlไม่แสดงส่วนหัว HSTS ให้ตรวจสอบว่า DNS ชี้ไปยังปลายทางที่คุณแก้ไขแล้ว คำขอใช้ HTTPS และพร็อกซีไม่ได้ลบส่วนหัวออก หากส่วนหัวปรากฏในหน้าแรกแต่ไม่ปรากฏในข้อความตอบกลับอื่นๆ ให้ตรวจสอบคำสั่งระดับตำแหน่งของ NGINX หรือกฎส่วนหัวการตอบกลับของพร็อกซี หากการตอบกลับสาธารณะถูกต้อง แต่ Nextcloud ยังคงเตือน ให้ตรวจสอบว่าการตรวจสอบผู้ดูแลระบบใช้ชื่อโฮสต์และรูปแบบที่มองเห็นได้จากภายนอกเหมือนกัน จากนั้นตรวจสอบแคชหรือเลเยอร์พร็อกซีใดๆ ที่อยู่ระหว่างเซิร์ฟเวอร์และการตรวจสอบ

ใช้การโหลดล่วงหน้าหลังจากตรวจสอบทั่วทั้งโดเมนแล้วเท่านั้น

การตั้งค่า Preload เป็นตัวเลือกที่มีผลกระทบสูงและแยกต่างหาก คำสั่ง Preload นั้นไม่ได้ลงทะเบียนโดเมนโดยตรง รายการ Preload ของเบราว์เซอร์มีข้อกำหนดในการส่งข้อมูลของตนเอง คำแนะนำของเบราว์เซอร์ในปัจจุบันต้องการขั้นตอนการลงทะเบียนที่ยาวนานmax-ageNextcloud includeSubDomainsเตือนว่าการลบออกจากรายการ Preload ที่จัดส่งมาอาจใช้เวลาหลายเดือนกว่าจะถึงเบราว์เซอร์ที่ติดตั้งไว้ เริ่มต้นด้วยนโยบายพื้นฐาน ตรวจสอบชื่อโฮสต์ที่ได้รับผลกระทบทั้งหมด ยืนยันว่า HTTPS ทำงานได้ทั่วทั้งโดเมน และตรวจสอบข้อกำหนด Preload อย่างเป็นทางการก่อนที่จะนำไปใช้ ผู้ดูแลระบบ Nextcloud ส่วนใหญ่สามารถแก้ไขคำเตือนนี้ได้โดยไม่ต้องเลือกใช้ Preload

อ้างอิง: คำเตือนด้านความปลอดภัยของ Nextcloud 35 , คำแนะนำในการเสริมความแข็งแกร่งของ Nextcloud , การกำหนดค่า Nextcloud NGINXและ ข้อมูลอ้างอิงส่วนหัว HSTS ของ MDN

ฝากความเห็น

เพิ่มส่วนหัว HSTS ที่ปลายทาง HTTPS ที่ให้บริการ Nextcloud

ล้างคำเตือน HSTS ของ Nextcloud โดยการตั้งค่าส่วนหัวที่ Apache, NGINX หรือพร็อกซี TLS ของคุณ จากนั้นตรวจสอบการตอบสนอง HTTPS สาธารณะอย่างปลอดภัย

แก้ไขปัญหาการติดตั้งแอป Nextcloud ที่แจ้งว่าไม่มีการเชื่อมต่ออินเทอร์เน็ต

แก้ไขปัญหาการติดตั้งแอป Nextcloud ที่แจ้งว่าไม่มีการเชื่อมต่ออินเทอร์เน็ต

ตรวจสอบหาสาเหตุของการติดตั้งแอปจาก App Store ที่ล้มเหลว ไม่ว่าจะเป็นปัญหาจาก DNS, HTTPS, พร็อกซี, TLS หรือปัญหาการตั้งค่าจากเซิร์ฟเวอร์ Nextcloud เอง

แก้ปัญหา CPU กระชากเร็วใน Nextcloud Preview ด้วยคิวที่กำหนดเวลาไว้

ย้ายการสร้างภาพขนาดย่อไปไว้ในกำหนดการพื้นหลังที่ควบคุมได้ ตัดขนาดภาพตัวอย่างที่ไม่ได้ใช้ และตรวจสอบคิวโดยไม่ทำให้เซิร์ฟเวอร์ Nextcloud ของคุณทำงานหนักเกินไป

รับการซิงค์ข้อมูลบนเดสก์ท็อป Nextcloud โดยไม่ต้องแสดงสถานะ “กำลังประมวลผลไฟล์” อีกต่อไป

ค้นหาไฟล์ กฎการยกเว้น ปัญหาการเชื่อมต่อ หรือสถานะฐานข้อมูลไคลเอ็นต์ที่ทำให้การซิงค์ Nextcloud หยุดชะงัก จากนั้นตรวจสอบการอัปโหลดและดาวน์โหลดอย่างปลอดภัย

ล้างคำเตือน Nextcloud OPcache โดยการปรับขีดจำกัดให้ถูกต้อง

ค้นหาข้อจำกัดของ PHP OPcache ที่ทำให้เกิดคำเตือนของ Nextcloud อัปเดตการตั้งค่า PHP สำหรับเว็บให้ถูกต้อง รีสตาร์ทอย่างปลอดภัย และตรวจสอบผลลัพธ์

เชื่อมต่อ Nextcloud กับ CODE Docker: การตั้งค่าและข้อดีข้อเสีย

เชื่อมต่อ Nextcloud กับ CODE Docker: การตั้งค่าและข้อดีข้อเสีย

เปรียบเทียบ CODE ที่ติดตั้งมากับระบบและ CODE ที่ใช้ Docker จากนั้นเชื่อมต่อ Collabora Online กับ Nextcloud ผ่านพร็อกซีแบบย้อนกลับ HTTPS ที่ปลอดภัย

สร้างคลัสเตอร์ Nextcloud ที่ทนทานด้วย Galera

วางแผนการใช้งาน Nextcloud HA ที่เชื่อถือได้ โดยใช้พื้นที่จัดเก็บข้อมูลร่วมกัน การล็อก Redis การกำหนดเส้นทาง MariaDB ที่คำนึงถึงจำนวนเสียงข้างมาก และการตรวจสอบการทำงานล้มเหลวที่ใช้งานได้จริง

รับสาย Nextcloud Talk ได้เมื่อการเชื่อมต่อ Direct Media ล้มเหลว

รับสาย Nextcloud Talk ได้เมื่อการเชื่อมต่อ Direct Media ล้มเหลว

กำหนดค่าและตรวจสอบรีเลย์ TURN ที่สามารถเข้าถึงได้สำหรับ Nextcloud Talk เมื่อไฟร์วอลล์หรือ NAT ที่จำกัดปิดกั้นสื่อการโทรโดยตรง

ล้างคำเตือนเกี่ยวกับความสมบูรณ์ของข้อมูลใน Nextcloud โดยการกู้คืนไฟล์ที่ถูกต้อง

ใช้รายงานไฟล์ที่ไม่ถูกต้องเพื่อระบุโค้ด Nextcloud ที่เปลี่ยนแปลง หายไป หรือเกินมา กู้คืนไฟล์ที่เชื่อถือได้อย่างปลอดภัย และตรวจสอบผลลัพธ์

เชื่อมต่อ Gmail หรือ Microsoft 365 กับ Nextcloud Mail โดยใช้ OAuth2

ตั้งค่า OAuth2 สำหรับ Nextcloud Mail กับ Gmail หรือ Microsoft 365 ตรวจสอบการรับและส่ง และแก้ไขปัญหาการขอความยินยอมและข้อผิดพลาด SMTP ทั่วไป