สำหรับอินสแตนซ์ ownCloud Server ที่โฮสต์โดยตรงซึ่งทำงานอยู่เบื้องหลัง Apache VirtualHost ขั้นตอนปกติคือการชี้โดเมนสาธารณะไปยังเซิร์ฟเวอร์ ทำให้เว็บไซต์ HTTP สามารถเข้าถึงได้ และเรียกใช้ตัวติดตั้ง Apache ของ Certbot สำหรับชื่อโฮสต์นั้น ตัวอย่างเช่น หากที่อยู่ ownCloud ของคุณคือcloud.example.comCertbot สามารถขอใบรับรอง Let's Encrypt และกำหนดค่า Apache ให้ให้บริการ HTTPS ด้วยsudo certbot --apache -d cloud.example.comทดสอบเว็บไซต์และการต่ออายุอัตโนมัติก่อนที่จะใช้งานอย่างถาวร
ขั้นตอนการติดตั้งนี้ใช้สำหรับ ownCloud Classic 10.16 ที่ติดตั้งบนระบบ Ubuntu โดยใช้ Apache ตามที่ระบุไว้ในคู่มือ Apache ของ ownCloud หากคุณใช้งาน ownCloud Classic 11 ใน Docker ownCloud ระบุว่าต้องกำหนดค่า HTTPS บนเว็บพร็อกซีที่อยู่ด้านหน้าคอนเทนเนอร์ หากผู้ให้บริการโฮสติ้งหรือรีเวิร์สพร็อกซีทำการยุติ TLS อยู่แล้ว ให้กำหนดค่าใบรับรองที่นั่นแทนที่จะพยายามติดตั้งในคอนเทนเนอร์ ownCloud
ตรวจสอบให้แน่ใจว่าการตั้งค่านี้เหมาะสมกับเซิร์ฟเวอร์ของคุณ
Let's Encrypt จะพิสูจน์ว่าคุณควบคุมชื่อโดเมนที่ร้องขอ ก่อนที่จะออกใบรับรอง สำหรับการตรวจสอบ HTTP-01 ทั่วไป Let's Encrypt ต้องสามารถดึงไฟล์ชั่วคราวจากเซิร์ฟเวอร์ของคุณผ่าน HTTP สาธารณะบนพอร์ต 80 ได้ และชื่อโฮสต์เดียวกันนั้นจะต้องสามารถระบุไปยังปลายทางสาธารณะที่ให้บริการเว็บไซต์ ownCloud ของคุณได้ จากนั้นการรับส่งข้อมูล HTTPS จะไปถึงปลายทาง Apache บนพอร์ต 443
- คุณมีชื่อโฮสต์สาธารณะ เช่น
cloud.example.comและควบคุมระเบียน DNS ของชื่อโฮสต์นั้น
- ชื่อโฮสต์จะแปลงเป็นที่อยู่ IP สาธารณะของเซิร์ฟเวอร์ Apache หรือพร็อกซีแบบย้อนกลับสาธารณะ
- พอร์ตขาเข้า 80 และ 443 ได้รับอนุญาตผ่านไฟร์วอลล์ เราเตอร์ และกลุ่มความปลอดภัยบนคลาวด์ที่เกี่ยวข้อง
- Apache ให้บริการเว็บไซต์ ownCloud ผ่าน VirtualHost สำหรับชื่อโฮสต์นั้นอยู่แล้ว
- คุณมีสิทธิ์เข้าถึงในฐานะผู้ดูแลระบบบนเครื่องที่จัดการการรับส่งข้อมูล HTTP และ HTTPS สาธารณะ
หากเว็บไซต์ของคุณอยู่เบื้องหลังพร็อกซี, โหลดบาลานเซอร์, โฮสต์คอนเทนเนอร์ หรือแผงควบคุม ให้ระบุตำแหน่งที่สิ้นสุดของ TLS สาธารณะก่อนเรียกใช้ Certbot ใบรับรองที่ติดตั้งบนเครื่องที่ไม่ถูกต้องจะไม่สามารถรักษาความปลอดภัยการเชื่อมต่อระหว่างเบราว์เซอร์กับเซิร์ฟเวอร์ได้ สำหรับ ownCloud Classic 11 การออกแบบ Docker ที่รองรับจะจัดการ Apache ภายในคอนเทนเนอร์และวาง HTTPS ไว้ที่พร็อกซีเว็บ
เตรียมชื่อโฮสต์ ownCloud และไซต์ Apache
ควรใช้ชื่อโฮสต์ ownCloud ที่เฉพาะเจาะจงหากเป็นไปได้ ownCloud กำหนดให้ URL ของเบราว์เซอร์แต่ละตัวที่ใช้ในการเข้าสู่ระบบต้องอยู่trusted_domainsในconfig/config.phpไฟล์ trusted-domains ของมัน หากคุณกำลังเปลี่ยนจากที่อยู่ IP หรือชื่อโฮสต์อื่นมาเป็น ownCloud cloud.example.comให้เพิ่มโฮสต์ใหม่ลงในรายการที่ไม่ได้ใช้ในอาร์เรย์ trusted-domains ก่อนที่จะทดสอบที่อยู่ใหม่ อย่าเขียนทับรายการอื่นโดยไม่ได้ตั้งใจ
ตรวจสอบให้แน่ใจว่าการเชื่อมต่อ HTTP ธรรมดาสามารถเข้าถึงเว็บไซต์ ownCloud ที่ต้องการได้ก่อนที่จะขอใบรับรอง ใน Apache นั้น VirtualHost ควรระบุชื่อโฮสต์ที่แน่นอนด้วยServerNameคำสั่ง <hostname> คำแนะนำของ ownCloud สำหรับ Apache นั้นสมมติว่ามีการกำหนดค่า VirtualHost และใน Ubuntu จะวางคำจำกัดความของไซต์ไว้ภายใต้/etc/apache2/sites-available/<site_name> เส้นทางและชื่อบริการอาจแตกต่างกันไปในระบบปฏิบัติการอื่นๆ
สำรองข้อมูลการตั้งค่า Apache VirtualHost ที่ใช้งานอยู่ก่อนทำการเปลี่ยนแปลงใดๆ เพื่อเป็นจุดกู้คืนหากโปรแกรมติดตั้งอัตโนมัติเลือกไซต์ผิดหรือสร้างโฮสต์ HTTPS ที่ขัดแย้งกัน หากคุณมีหลายไซต์บนเซิร์ฟเวอร์เดียวกัน โปรดตรวจสอบ VirtualHost ที่มีอยู่เพื่อให้แน่ใจว่าใบรับรองเชื่อมโยงกับชื่อโฮสต์ ownCloud แทนที่จะเป็นไซต์เริ่มต้น
ติดตั้งและเรียกใช้ Certbot สำหรับ Apache
ติดตั้ง Certbot โดยใช้คำแนะนำที่เหมาะสมกับระบบปฏิบัติการและการตั้งค่า Apache ของคุณ คำแนะนำอย่างเป็นทางการของ Certbot แนะนำให้ใช้แพ็กเกจ Snap สำหรับการติดตั้ง Linux หลายรุ่น แต่ความพร้อมใช้งานของแพ็กเกจและวิธีการติดตั้งที่รองรับนั้นขึ้นอยู่กับการแจกจ่าย Linux หลีกเลี่ยงการติดตั้ง Certbot หลายเวอร์ชันจากตัวจัดการแพ็กเกจของระบบปฏิบัติการและ Snap คำสั่งที่ใช้certbotควรเป็นคำสั่งที่มีปลั๊กอิน Apache ที่คุณต้องการใช้งาน
บนระบบ Ubuntu ที่ติดตั้งและรองรับ Snap คำแนะนำของ Certbot จะแสดงเส้นทางการติดตั้งดังนี้:
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/local/bin/certbot
หากติดตั้ง Certbot ไว้แล้ว โปรดตรวจสอบเวอร์ชันที่เชลล์ของคุณใช้งานและวิธีการติดตั้งก่อนที่จะเพิ่มสำเนาอีกชุดหนึ่งสำหรับตัวเลือกการติดตั้งอื่นๆ ที่รองรับ โปรดดู คู่มือการติดตั้ง Certbot Apache ฉบับปัจจุบัน
ขอและติดตั้งใบรับรองสำหรับชื่อโฮสต์ ownCloud ของคุณ:
sudo certbot --apache -d cloud.example.com
แทนที่cloud.example.comด้วยชื่อโฮสต์จริง Certbot จะทำการตรวจสอบความถูกต้องของโดเมน และเมื่อใช้ร่วมกับตัวติดตั้ง Apache จะอัปเดต Apache ให้ใช้ใบรับรองที่ออกให้ หากคุณต้องการใช้ใบรับรองเดียวครอบคลุมหลายชื่อ ให้ระบุแต่ละชื่ออย่างชัดเจน เช่น-d cloud.example.com -d files.example.comทุกชื่อที่ระบุต้องชี้ไปยังปลายทางที่เข้าถึงได้และผ่านการตรวจสอบความถูกต้อง
Certbot อาจถามว่าควรเปลี่ยนเส้นทางการร้องขอ HTTP ไปยัง HTTPS หรือไม่ การเปิดใช้งานการเปลี่ยนเส้นทางนั้นเหมาะสมเมื่อ VirtualHost HTTPS ทำงานได้แล้ว ownCloud แนะนำให้ใช้ HTTPS สำหรับการใช้งานจริง และเปลี่ยนเส้นทางถาวรสำหรับทราฟฟิกที่ไม่ได้เข้ารหัส หากคุณต้องการจัดการการกำหนดค่า Apache ด้วยตนเอง Certbot ยังมีโหมดเฉพาะใบรับรองให้เลือกใช้ด้วย ใช้คู่มือ Apache ของ ownCloud เพื่อเชื่อมต่อไฟล์ใบรับรองและ VirtualHost อย่างถูกต้อง จากนั้นทดสอบการกำหนดค่าก่อนที่จะรีโหลด Apache
เมื่อการตรวจสอบ HTTP ไม่สามารถส่งไปถึงเซิร์ฟเวอร์ของคุณได้
วิธีการ HTTP-01 ใช้เส้นทางบน/.well-known/acme-challenge/พอร์ต 80 หากเราเตอร์ส่งต่อพอร์ต 80 ไปยังเครื่องอื่น ไฟร์วอลล์บล็อก หรือพร็อกซีอื่นส่งต่อเส้นทางนั้นไปยังที่อื่น การตรวจสอบความถูกต้องอาจล้มเหลวแม้ว่าหน้า ownCloud จะโหลดผ่าน HTTPS ก็ตาม ตรวจสอบ DNS สาธารณะและการส่งต่อพอร์ต จากนั้นตรวจสอบให้แน่ใจว่าการตรวจสอบ ACME ไปถึงปลายทางเดียวกันกับที่ Certbot กำลังทำงานอยู่
หากผู้ให้บริการอินเทอร์เน็ต (ISP) หรือนโยบายเครือข่ายของคุณบล็อกพอร์ต 80 ให้พิจารณาใช้การตรวจสอบ DNS-01 แทน วิธีนี้พิสูจน์การควบคุมโดเมนผ่านระเบียน DNS TXT และสามารถออกใบรับรองแบบไวด์การ์ดได้ แต่การต่ออายุอัตโนมัติขึ้นอยู่กับว่าผู้ให้บริการ DNS ของคุณมีปลั๊กอิน API ที่เหมาะสมหรือไม่ หลีกเลี่ยงการใส่ข้อมูลรับรอง DNS ที่กว้างเกินไปบนเว็บเซิร์ฟเวอร์เมื่อมีข้อมูลรับรองที่มีขอบเขตแคบกว่าหรือโฮสต์ตรวจสอบความถูกต้องแยกต่างหาก อย่าใช้ขั้นตอน HTTP-01 เท่านั้นสำหรับใบรับรองแบบไวด์การ์ด
ตรวจสอบ Apache และ ownCloud หลังจากการติดตั้งเสร็จสิ้น
ก่อนปิดหน้าต่างการบำรุงรักษา โปรดตรวจสอบว่าการกำหนดค่า Apache นั้นถูกต้อง และ Certbot แสดงรายการใบรับรองใหม่แล้ว:
sudo apache2ctl configtest
sudo certbot certificates
บน Ubuntu การตรวจสอบไวยากรณ์ Apache ที่สำเร็จจะรายงานว่าการกำหนดค่าถูกต้อง เปิดhttps://cloud.example.comในเบราว์เซอร์และลงชื่อเข้าใช้ ยืนยันว่าเบราว์เซอร์แสดงใบรับรองที่ถูกต้องสำหรับชื่อโฮสต์ที่ระบุ และทดสอบไคลเอนต์การอัปโหลด ดาวน์โหลด และซิงค์ไฟล์ที่เป็นตัวแทน หากคุณเปิดใช้งานการเปลี่ยนเส้นทาง ให้ไปที่ที่อยู่ HTTP และยืนยันว่าเข้าถึงชื่อโฮสต์ HTTPS เดียวกันโดยไม่มีการวนลูปการเปลี่ยนเส้นทาง
หากหน้าเข้าสู่ระบบ ownCloud รายงานว่าโดเมนไม่น่าเชื่อถือ ให้ตรวจสอบtrusted_domainsการกำหนดค่าของเซิร์ฟเวอร์ หากเบราว์เซอร์เปลี่ยนเส้นทางไปยังชื่อโฮสต์ที่ไม่ถูกต้อง หรือ ownCloud สร้างลิงก์ HTTP อยู่เบื้องหลังพร็อกซีแบบย้อนกลับ ให้ตรวจสอบส่วนหัวโฮสต์และ HTTPS ที่ส่งต่อของพร็อกซี และการตั้งค่าพร็อกซีของ ownCloud การตั้งค่าเหล่านั้นขึ้นอยู่กับโครงสร้างของพร็อกซี อย่าคัดลอกการตั้งค่าพร็อกซีแบบย้อนกลับไปยังการติดตั้ง Apache โดยตรงโดยไม่มีเหตุผล
ตรวจสอบการต่ออายุใบอนุญาตก่อนพิจารณาว่างานเสร็จสมบูรณ์แล้ว
ใบรับรองมาตรฐานของ Let's Encrypt มีอายุสั้น ดังนั้นการต่ออายุจึงต้องทำโดยอัตโนมัติ การติดตั้ง Certbot มักจะมีตัวจับเวลา systemd หรือ cron job ให้ใช้งาน ทดสอบการต่ออายุล่วงหน้าได้ด้วยคำสั่งต่อไปนี้:
sudo certbot renew --dry-run
การทดสอบแบบจำลองจะตรวจสอบเส้นทางการต่ออายุโดยไม่เปลี่ยนใบรับรองที่ใช้งานอยู่ หากล้มเหลว ให้อ่านผลลัพธ์ของ Certbot และแก้ไขปัญหา DNS, ไฟร์วอลล์, การกำหนดเส้นทางการตรวจสอบ หรือ Apache ที่ระบุไว้ ยืนยันว่ามีตัวจับเวลาหรือภารกิจที่กำหนดไว้ในเครื่องมือบริการของระบบปฏิบัติการของคุณ อย่าคิดว่าการต่ออายุทำงานอยู่แล้วเพียงเพราะออกใบรับรองใบแรกแล้ว หากการต่ออายุของคุณใช้ HTTP-01 ให้เปิดพอร์ต 80 ไว้ หรือตรวจสอบให้แน่ใจว่าระบบอัตโนมัติ DNS-01 ของคุณยังคงสามารถอัปเดตระเบียน TXT ที่จำเป็นได้
ทางเลือกทั่วไปและข้อผิดพลาดที่อาจเกิดขึ้น
| สถานการณ์ | เส้นทางที่แนะนำ |
| ownCloud Classic 10.16 บน Ubuntu ที่เปิดใช้งาน Apache โดยตรง | ใช้โปรแกรมติดตั้ง Apache ของ Certbot สำหรับชื่อโฮสต์ ownCloud |
| ownCloud Classic 11 ใน Docker | ตั้งค่า HTTPS บนเว็บพร็อกซีที่อยู่ด้านหน้าคอนเทนเนอร์ |
| แผงควบคุมโฮสติ้งจัดการใบรับรองอยู่แล้ว | ใช้เวิร์กโฟลว์ Let's Encrypt ของแผงควบคุม และตรวจสอบว่ามีการต่ออายุอย่างถูกต้อง |
| พอร์ต 80 ไม่สามารถเข้าถึงเว็บเซิร์ฟเวอร์ได้ หรือจำเป็นต้องใช้สัญลักษณ์ตัวแทน (wildcard) | ใช้ DNS-01 ร่วมกับวิธีการต่ออายุที่เหมาะสม |
| Apache มี VirtualHost หลายประเภท | ยืนยันว่า Certbot เลือก VirtualHost ที่มี ServerName ตรงกับชื่อโฮสต์ในใบรับรองแล้ว |
อย่าเปิดใช้งาน HSTS includeSubDomainsจนกว่าโดเมนย่อยที่เกี่ยวข้องทั้งหมดจะให้บริการผ่าน HTTPS ได้อย่างถูกต้อง ส่วนหัวของชื่อโฮสต์หนึ่งจะมีผลต่อวิธีที่เบราว์เซอร์จัดการโดเมนย่อย ขั้นแรก ตรวจสอบให้แน่ใจว่าใบรับรอง การเปลี่ยนเส้นทาง และการต่ออายุมีความน่าเชื่อถือ จากนั้น ตรวจสอบคำแนะนำด้านความปลอดภัยของ ownCloud สำหรับ HSTS และการตั้งค่า TLS อื่นๆ ที่เหมาะสมกับโครงสร้างโดเมนทั้งหมดของคุณ
เอกสารนี้ได้รับการตรวจสอบเมื่อวันที่ 6 ตุลาคม 2026 เส้นทางไฟล์และคำสั่งที่ระบุไว้ด้านล่างนี้ อ้างอิงจากระบบปฏิบัติการ Ubuntu ที่ใช้ Apache และ ownCloud Classic 10.16 เท่านั้น สำหรับการใช้งาน Docker, reverse-proxy, hosting-panel, Nginx และระบบปฏิบัติการอื่นๆ ที่ไม่ใช่ Ubuntu จะต้องมีคำแนะนำสำหรับปลายทาง TLS ที่เหมาะสม
อ้างอิง: ownCloud 10.16: การกำหนดค่า Apache กับ Let's Encrypt ; ownCloud 11: คำแนะนำเกี่ยวกับ HTTPS และ reverse-proxy ; ownCloud 10.16: โดเมนที่เชื่อถือได้ ; Certbot: การติดตั้งและการต่ออายุ Apache ; Let's Encrypt: ประเภทการท้าทาย ; Let's Encrypt: การเปิดพอร์ต 80ไว้