ตั้งค่า HTTPS สำหรับ ONLYOFFICE Docs ใน Docker

สำหรับการเชื่อมต่อโดยตรงไปยัง ONLYOFFICE Docs ให้เปิดพอร์ต 443 ของคอนเทนเนอร์ เก็บไฟล์ใบรับรองไว้ในไดเร็กทอรีข้อมูลที่เมานต์ไว้ และชี้คอนเทนเนอร์ไปยังไฟล์เหล่านั้น หากมีพร็อกซีแบบย้อนกลับที่ให้บริการ HTTPS อยู่แล้ว ให้คง TLS ไว้ที่พร็อกซีนั้น และส่งต่อโฮสต์และโปรโตคอลเดิมไปยัง ONLYOFFICE แทนที่จะเปิดใช้งานปลายทาง TLS ตัวที่สองโดยค่าเริ่มต้น

ตัวอย่างเช่น หากชื่อโฮสต์สาธารณะคือdocs.example.comให้ตรวจสอบก่อนว่าชี้ไปยังเซิร์ฟเวอร์เอกสารโดยตรงหรือไปยังพร็อกซี ใช้เฉพาะการกำหนดค่าที่ตรงกันด้านล่างเท่านั้น

1. กำหนดจุดสิ้นสุดของ HTTPS

TLS จะสิ้นสุดลงเมื่อมีการถอดรหัส HTTPS: ไม่ว่าจะเป็นในคอนเทนเนอร์ ONLYOFFICE หรือที่พร็อกซีแบบย้อนกลับ เลือกคอมโพเนนต์ที่รับการเชื่อมต่อสาธารณะ

  • การเข้าถึงโดยตรง:ไคลเอ็นต์เชื่อมต่อhttps://docs.example.comผ่านพอร์ต 443 ของโฮสต์ ซึ่งถูกแมปไปยังพอร์ต 443 ของคอนเทนเนอร์ คอนเทนเนอร์เซิร์ฟเวอร์เอกสารจำเป็นต้องมีใบรับรองและคีย์ส่วนตัวที่ตรงกัน
  • การเข้าถึงผ่านพร็อกซี:ไคลเอ็นต์เชื่อมต่อกับพร็อกซีผ่าน HTTPS; พร็อกซีจะส่งต่อทราฟฟิกไปยัง Document Server ผ่านเครือข่ายภายใน ในการตั้งค่านี้ ใบรับรองมักจะอยู่ที่พร็อกซี คำแนะนำเกี่ยวกับพร็อกซีของ ONLYOFFICE กำหนดให้มีส่วนหัว <proximity_name> X-Forwarded-Protoและ <proximity_name> X-Forwarded-Hostเพื่อให้แอปพลิเคชันสามารถระบุรูปแบบการร้องขอสาธารณะและชื่อโฮสต์ได้

การแมปพอร์ต443:443ไม่ได้สร้าง HTTPS แต่เป็นการแมปพอร์ตเท่านั้น สำหรับการเข้าถึงโดยตรง คอนเทนเนอร์จะต้องอ่านใบรับรองและคีย์ด้วย หากพร็อกซีเป็นเจ้าของ URL สาธารณะ โปรดใช้คำแนะนำอย่างเป็นทางการของ ONLYOFFICE สำหรับพ ร็อก ซีแบบย้อนกลับ

โปรแกรมจัดการไฟล์แสดงเฉพาะไฟล์ office.crt และ onlyoffice.key ในโฟลเดอร์ใบรับรองถาวร
โฟลเดอร์ใบรับรองแบบถาวรจะประกอบด้วยไฟล์ใบรับรองและไฟล์คีย์ส่วนตัวแยกต่างหาก

2. กำหนดค่า HTTPS โดยตรงใน Docker Compose

ใช้เส้นทางนี้เมื่อคอนเทนเนอร์ให้บริการ HTTPS โดยตรง สำหรับการเข้าถึงแบบสาธารณะ ให้ใช้ใบรับรองที่ลูกค้าเชื่อถือสำหรับชื่อโฮสต์สาธารณะ ใบรับรองที่ลงนามด้วยตนเองสามารถเข้ารหัสการรับส่งข้อมูลได้ แต่ลูกค้าจะแจ้งเตือนเกี่ยวกับตัวตนเว้นแต่จะได้รับการกำหนดค่าให้เชื่อถือใบรับรองนั้นแยกต่างหาก

โดยค่าเริ่มต้น ONLYOFFICE Docs จะจัดเก็บใบรับรองไว้ด้านล่าง/var/www/onlyoffice/Data/certsและการกำหนดค่า Docker ปัจจุบันระบุtls.crtและtls.keyเป็นเส้นทางใบรับรองและคีย์เริ่มต้น ตัวอย่างในเอกสารประกอบไม่ได้ใช้ชื่อไฟล์ที่เหมือนกันเสมอไป ดังนั้นตัวอย่างนี้จึงกำหนดเส้นทางทั้งสองอย่างชัดเจน

services:
  documentserver:
    # Keep your existing image, environment, networks, and other settings.
    ports:
      - "443:443"
    volumes:
      - ./documentserver-data:/var/www/onlyoffice/Data
    environment:
      SSL_CERTIFICATE_PATH: /var/www/onlyoffice/Data/certs/tls.crt
      SSL_KEY_PATH: /var/www/onlyoffice/Data/certs/tls.key

นี่เป็นเพียงส่วนหนึ่ง ไม่ใช่คำจำกัดความบริการทดแทน โปรดคงการตั้งค่ารูปภาพ JWT เครือข่าย และระดับเสียงที่มีอยู่เดิม เมื่อเทียบกับไฟล์ Compose ให้วางใบรับรองไว้ที่./documentserver-data/certs/tls.crtและคีย์ที่ตรงกันไว้ที่ รวมห่วงโซ่ใบรับรองที่ผู้ให้บริการของคุณจัดหาให้ และตรวจ สอบ./documentserver-data/certs/tls.keyให้แน่ใจว่าใบรับรองครอบคลุมdocs.example.com

การเมานต์แบบผูก (bind mount) จะเก็บไฟล์ไว้ภายนอกคอนเทนเนอร์ที่สามารถเปลี่ยนได้ จำกัดการเข้าถึงคีย์ส่วนตัวในขณะที่ตรวจสอบให้แน่ใจว่าคอนเทนเนอร์สามารถอ่านคีย์ได้ มิเช่นนั้น HTTPS อาจเริ่มต้นไม่สำเร็จ ห้ามแชร์คีย์ในคำขอความช่วยเหลือเด็ดขาด

ส่วนหนึ่งของ Docker Compose จะแมปพอร์ต 443 และเชื่อมต่อ documentserver-data เข้ากับไดเร็กทอรีข้อมูล ONLYOFFICE
ส่วนของคำสั่ง Compose จะแมปพอร์ต 443 ของโฮสต์ และทำให้ไดเร็กทอรีข้อมูลฝั่งโฮสต์พร้อมใช้งานสำหรับคอนเทนเนอร์

3. ปรับใช้การเปลี่ยนแปลงโดยไม่ทำให้การติดตั้งใช้งานเปลี่ยนแปลงโดยไม่ตั้งใจ

  1. สำรองไฟล์ Compose และไดเร็กทอรีใบรับรอง จากนั้นตรวจสอบว่าใบรับรองและคีย์ตรงกันสำหรับชื่อโฮสต์สาธารณะหรือไม่
  2. ทำการเปลี่ยนแปลงพอร์ต วอลุ่ม และพาธในบริการที่มีอยู่แล้ว อย่าเริ่มต้นคอนเทนเนอร์ที่สองด้วยพอร์ตโฮสต์เดียวกัน หรือลบวอลุ่มที่มีอยู่เพื่อใช้ TLS
  3. สร้างบริการขึ้นใหม่หากคุณเปลี่ยนแปลงพอร์ต การเชื่อมต่อ หรือสภาพแวดล้อม หากใช้ Compose ให้รันคำสั่งdocker compose up -d documentserverจากไดเร็กทอรีที่มีไฟล์ Compose โดยแทนที่ด้วยชื่อบริการจริงของคุณ หากคุณเปลี่ยนเฉพาะไฟล์ใบรับรองในไดเร็กทอรีที่เชื่อมต่ออยู่แล้ว ให้รีสตาร์ทคอนเทนเนอร์ที่มีอยู่เพื่อให้เซิร์ฟเวอร์โหลดไฟล์ใหม่: docker restart <container_name>.
  4. หาก HTTPS ไม่ทำงาน ให้ตรวจสอบบันทึกการเริ่มต้นระบบ: docker logs <container_name>มองหาข้อผิดพลาดเกี่ยวกับไฟล์หาย สิทธิ์การเข้าถึง หรือใบรับรอง/คีย์ ก่อนที่จะเปลี่ยนแปลงการตั้งค่าที่ไม่เกี่ยวข้อง

การรีสตาร์ทไม่สามารถเพิ่มการเมานต์หรือเปลี่ยนแปลงพอร์ตที่เผยแพร่ได้ ต้องสร้างบริการใหม่เพื่อทำการแก้ไขเหล่านั้น การแทนที่ไฟล์ในการเมานต์ถาวรที่มีอยู่แล้วไม่จำเป็นต้องเปลี่ยนแปลงใน Compose

หน้าต่างเทอร์มินัลแสดงคำสั่ง docker restart สำหรับคอนเทนเนอร์ ONLYOFFICE Document Server
รีสตาร์ทคอนเทนเนอร์ที่มีอยู่หลังจากเปลี่ยนไฟล์ในไดเร็กทอรีใบรับรองที่เชื่อมต่อแล้ว

4. ควรใช้ TLS กับรีเวิร์สพร็อกซีเมื่อรีเวิร์สพร็อกซีนั้นให้บริการโดเมนอยู่แล้ว

หากรีเวิร์สพร็อกซีสิ้นสุดhttps://docs.example.comการทำงานแล้ว ให้เก็บคีย์ส่วนตัวไว้ที่พร็อกซีนั้น ส่งต่อทราฟฟิกผ่านเครือข่ายที่มีการควบคุม และตั้งX-Forwarded-Proto: httpsค่าเครื่องหมายบวกX-Forwarded-Hostเป็นชื่อโฮสต์สาธารณะ ใช้ตัวอย่างอย่างเป็นทางการสำหรับซอฟต์แวร์พร็อกซีของคุณ

สัญลักษณ์แม่กุญแจในเบราว์เซอร์จะครอบคลุมการเชื่อมต่อระหว่างไคลเอ็นต์กับพร็อกซี ไม่จำเป็นต้องครอบคลุมทุกขั้นตอนภายในเครือข่าย HTTP บนเครือข่าย Docker ที่มีการควบคุมอาจเหมาะสมกับการใช้งานบางรูปแบบ ควรตรวจสอบความปลอดภัยของการเชื่อมต่อจากพร็อกซีไปยังคอนเทนเนอร์หากต้องผ่านเครือข่ายที่ไม่น่าเชื่อถือ

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

แผงใบรับรองในเบราว์เซอร์สำหรับ docs.example.com แสดงชื่อโฮสต์และรายละเอียดของใบรับรอง
ในเบราว์เซอร์ ให้ตรวจสอบรายละเอียดใบรับรองและยืนยันว่าระบุชื่อโฮสต์เดียวกันกับที่ใช้ในแถบที่อยู่

ตรวจสอบผลลัพธ์

จากเครื่องไคลเอ็นต์ที่สามารถเข้าถึงบริการสาธารณะได้ ให้เปิดhttps://docs.example.comและตรวจสอบรายละเอียดใบรับรองของเบราว์เซอร์ ยืนยันว่าชื่อโฮสต์ตรงกัน ใบรับรองอยู่ในช่วงเวลาที่ถูกต้อง และเบราว์เซอร์ไม่รายงานว่ามีผู้ออกใบรับรองที่ไม่น่าเชื่อถือหรือชื่อไม่ตรงกัน นอกจากนี้ คุณยังสามารถตรวจสอบการเชื่อมต่อ TLS จากเทอร์มินัลได้โดยใช้คำสั่ง `tls curl -Iv https://docs.example.com-l` ตรวจสอบใบรับรองและผลลัพธ์การเชื่อมต่อแทนที่จะพึ่งพาเพียงแค่ว่าหน้าเว็บโหลดได้หรือไม่

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

สำหรับรายละเอียดเกี่ยวกับเส้นทาง Docker ที่รองรับ ตัวแปรใบรับรอง และตัวเลือก Let's Encrypt ในตัว โปรดดูเอกสารการติดตั้ง Docker และ HTTPS ของ ONLYOFFICEคำสั่งที่ใช้ในการอัปเดตการปรับใช้ที่มีอยู่จะขึ้นอยู่กับวิธีการสร้างการปรับใช้ครั้งแรก โปรดรักษาวอลุ่มและการตั้งค่าการรวมระบบปัจจุบันของการปรับใช้นั้นไว้ในขณะที่ทำการเปลี่ยนแปลง TLS ที่เกี่ยวข้อง

ฝากความเห็น

ลบ ONLYOFFICE Document Server ออกจาก Linux อย่างสมบูรณ์

ลบ ONLYOFFICE Document Server ออกจาก Linux อย่างสมบูรณ์

ตรวจสอบว่า Document Server ใช้แพ็กเกจ Linux หรือ Docker ลบเฉพาะส่วนประกอบของมัน และตรวจสอบข้อมูลที่เหลืออยู่โดยไม่ลบบริการที่ใช้ร่วมกันโดยไม่ได้ตั้งใจ

แก้ปัญหาความล่าช้าในการแก้ไขร่วมของ ONLYOFFICE ด้วยการค้นหาจุดที่เป็นปัญหา

แก้ปัญหาความล่าช้าในการแก้ไขร่วมของ ONLYOFFICE ด้วยการค้นหาจุดที่เป็นปัญหา

ตรวจสอบหาสาเหตุของการแก้ไขเอกสารร่วมกันที่ช้า เช่น แรงกดดันด้านทรัพยากรของ Docker การเชื่อมต่อพร็อกซี หรือการโหลดเอกสาร จากนั้นเลือกวิธีแก้ไขที่ตรงกับผลการวิเคราะห์ของคุณ

ตั้งค่า HTTPS สำหรับ ONLYOFFICE Docs ใน Docker

ตั้งค่า HTTPS สำหรับ ONLYOFFICE Docs ใน Docker

เลือกตำแหน่งที่ TLS ควรสิ้นสุดการเชื่อมต่อ ติดตั้งใบรับรองที่เชื่อถือได้และคีย์ส่วนตัวอย่างปลอดภัย และตรวจสอบการเข้าถึง HTTPS ไปยังเซิร์ฟเวอร์ ONLYOFFICE Docs ที่ทำงานบน Docker

เชื่อมต่อแอป PHP กับ ONLYOFFICE Docs และบันทึกการแก้ไข

เชื่อมต่อแอป PHP กับ ONLYOFFICE Docs และบันทึกการแก้ไข

ฝังโปรแกรมแก้ไข ONLYOFFICE ลงในแอปพลิเคชัน PHP ของคุณ ลงนามการกำหนดค่าด้วย JWT และบันทึกไฟล์ที่แก้ไขแล้วผ่านการเรียกกลับที่ปลอดภัย

ตั้งค่าโปรแกรมตรวจสอบการสะกดคำ ONLYOFFICE ให้เป็นภาษาที่คุณเลือก

ตั้งค่าโปรแกรมตรวจสอบการสะกดคำ ONLYOFFICE ให้เป็นภาษาที่คุณเลือก

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

ตั้งค่าให้บันทึกการเปลี่ยนแปลงเมื่อเปิดเอกสารอีกครั้ง

ตั้งค่าให้บันทึกการเปลี่ยนแปลงเมื่อเปิดเอกสารอีกครั้ง

เปิดใช้งานการติดตามการเปลี่ยนแปลงแบบถาวรสำหรับทุกคนในเอกสาร ONLYOFFICE เดียวกัน ตรวจสอบว่าการแก้ไขได้รับการบันทึกแล้ว และทำความเข้าใจข้อจำกัดของการตั้งค่านี้

ตรวจสอบต้นทางเพื่อแก้ไขปัญหา Nginx 502 ของ ONLYOFFICE

ตรวจสอบต้นทางเพื่อแก้ไขปัญหา Nginx 502 ของ ONLYOFFICE

ตรวจสอบว่า Nginx, เครือข่าย Docker หรือบริการ ONLYOFFICE ภายในส่งคืนรหัส 502 หรือไม่ จากนั้นตรวจสอบการเชื่อมต่ออัปสตรีมที่แก้ไขแล้วและการตรวจสอบสถานะ

ติดตามการทำงานของฟังก์ชันบันทึกเมื่อ ONLYOFFICE ไม่สามารถบันทึกไปยัง Nextcloud ได้

ติดตามการทำงานของฟังก์ชันบันทึกเมื่อ ONLYOFFICE ไม่สามารถบันทึกไปยัง Nextcloud ได้

ตรวจสอบสาเหตุการบันทึก ONLYOFFICE ที่ล้มเหลวโดยตรวจสอบเส้นทางการเรียกกลับของ Nextcloud การเปลี่ยนเส้นทางพร็อกซี และบันทึกการจัดเก็บข้อมูล จากนั้นตรวจสอบว่าไฟล์ที่แก้ไขแล้วยังคงอยู่หรือไม่

ป้องกันไม่ให้ ONLYOFFICE Document Server ใช้หน่วยความจำ VPS จนหมด

ป้องกันไม่ให้ ONLYOFFICE Document Server ใช้หน่วยความจำ VPS จนหมด

ค้นหาสาเหตุของปัญหาหน่วยความจำไม่เพียงพอของ ONLYOFFICE ตรวจสอบข้อจำกัดของ Docker กำหนดขนาด RAM ของ VPS ให้ถูกต้อง เพิ่ม swap อย่างปลอดภัย และตรวจสอบว่าเอกสารเปิดและบันทึกได้

ตรวจสอบหาสาเหตุของการส่งออกไฟล์ PDF ที่ล้มเหลวของ ONLYOFFICE

ตรวจสอบหาสาเหตุของการส่งออกไฟล์ PDF ที่ล้มเหลวของ ONLYOFFICE

แยกปัญหาการดาวน์โหลดผ่านเบราว์เซอร์ออกจากข้อผิดพลาดในการแปลงไฟล์ฝั่งเซิร์ฟเวอร์ และใช้บันทึกหรือการตรวจสอบการเข้าถึงที่ถูกต้องเพื่อให้การส่งออกไฟล์ PDF ทำงานได้