ตัวอย่างประกอบ ไม่ใช่เหตุการณ์จริง:จอร์แดนดูแลเซิร์ฟเวอร์ Zimbra สมมติที่mail.example.com. หลังจากต่ออายุใบรับรอง SSL/TLS แล้ว จอร์แดนเปิดบุ๊กมาร์ก Admin Console ที่บันทึกไว้ และได้รับหน้า "404 Not Found" การต่ออายุอาจเกี่ยวข้อง แต่ข้อผิดพลาด 404 ไม่ได้พิสูจน์ว่าใบรับรองไม่ถูกต้องเสมอไป ที่อยู่ดังกล่าวอาจเข้าถึงพอร์ต พร็อกซี ชื่อโฮสต์ หรือเส้นทาง URL ที่ไม่ถูกต้อง
สำหรับตัวอย่างนี้ ลำดับขั้นตอนที่ปลอดภัยที่สุดของ Jordan คือ การยืนยัน URL ของ Admin Console ที่ต้องการ ทดสอบปลายทางโดยตรงและปลายทางผ่านพร็อกซีแยกกัน ตรวจสอบสถานะบริการ Zimbra และใบรับรองที่ติดตั้ง และหลังจากนั้นจึงค่อยติดตั้งใหม่หรือรีสตาร์ทส่วนประกอบหากมีหลักฐานชี้ไปในทิศทางนั้น ใช้คำแนะนำเฉพาะเวอร์ชันของการติดตั้งของคุณ: พอร์ต Zimbra และขั้นตอนใบรับรองอาจแตกต่างกันไปตามรุ่นและขึ้นอยู่กับว่าเซิร์ฟเวอร์ใช้ Zimbra Proxy, โหลดบาลานเซอร์แยกต่างหาก หรือรีเวิร์สพร็อกซีภายนอก
ข้อความ 404 หลังการต่ออายุ SSL บอกอะไรคุณบ้าง?
โดยปกติแล้ว การตอบสนอง HTTP 404 ที่ชัดเจนจากเบราว์เซอร์หมายความว่าเซิร์ฟเวอร์ HTTP ตอบรับคำขอแล้ว แต่ไม่พบทรัพยากรหรือเส้นทางที่ตรงกัน ดังนั้น การตรวจสอบชื่อโฮสต์ พอร์ต เส้นทาง URL โฮสต์เสมือน และเส้นทางพร็อกซีจึงมีความสำคัญ ซึ่งแตกต่างจากคำเตือนเกี่ยวกับใบรับรองของเบราว์เซอร์หรือความล้มเหลวในการเชื่อมต่อ TLS อย่างไรก็ตาม พร็อกซีแบบย้อนกลับหรือไฟร์วอลล์แอปพลิเคชันเว็บเองก็อาจส่งคืน 404 เมื่อโฮสต์หรือเส้นทางไม่ตรงกัน ดังนั้นสถานะเพียงอย่างเดียวจึงไม่สามารถระบุได้ว่าเลเยอร์ใดเป็นผู้รับผิดชอบ
Zimbra ระบุว่าคอนโซลผู้ดูแลระบบโดยตรงจะเชื่อมต่อผ่านพอร์ต TCP 7071เป็นค่าเริ่มต้น หาก Zimbra Proxy ถูกตั้งค่าให้เป็นพร็อกซีสำหรับคอนโซลผู้ดูแลระบบ พอร์ตพร็อกซีเริ่มต้นที่ระบุไว้คือ9071; ซึ่งเป็นตัวเลือกเสริมและสามารถปรับแต่งได้ ที่อยู่เว็บเมลมาตรฐานบนพอร์ต443ไม่ใช่ปลายทางเดียวกันกับคอนโซลผู้ดูแลระบบโดยตรงโดยอัตโนมัติ โปรดตรวจสอบคำแนะนำเกี่ยวกับ URL ของคอนโซลการดูแลระบบของ Zimbraและข้อมูลอ้างอิงพอร์ตของ Zimbraกับการกำหนดค่าของคุณเอง
คุณควรแก้ไขปัญหาข้อผิดพลาดนี้อย่างไร?
1. ยืนยันที่อยู่ Admin Console ที่ถูกต้อง
ใช้ชื่อโฮสต์และพอร์ตที่กำหนดค่าไว้สำหรับการใช้งานของคุณ แทนที่จะสันนิษฐานว่า URL เว็บเมลของคุณคือ URL ของคอนโซลผู้ดูแลระบบด้วย สำหรับการเชื่อมต่อโดยตรงทั่วไป Zimbra ระบุ URL ในรูปแบบhttps://server.example.com:7071ผู้ดูแลระบบที่เปิดใช้งาน Zimbra Proxy สำหรับคอนโซลอาจใช้ชื่อโฮสต์และพอร์ตของพร็อกซีแทน ซึ่งโดยทั่วไปคือhttps://proxy.example.com:9071อย่าเพิ่ม/adminเส้นทางที่สันนิษฐานไว้: ใช้ที่อยู่ตามที่ระบุไว้ในการติดตั้งหรือเอกสารสำหรับผู้ดูแลระบบ
ตัวอย่างประกอบ: เบราว์เซอร์ถูกตั้งค่าให้ชี้ไปยังพอร์ต Admin Console โดยตรงของเซิร์ฟเวอร์สมมติ ซึ่งคือพอร์ต 7071
ตัวอย่างประกอบ: พอร์ต 9071 แสดงเป็นเส้นทางพร็อกซีแยกต่างหาก ซึ่งใช้เฉพาะเมื่อมีการกำหนดค่าพร็อกซีในคอนโซลผู้ดูแลระบบเท่านั้น
ในกรณีสมมติของจอร์แดน บุ๊กมาร์กเก่าชี้ไปยังชื่อโฮสต์เว็บเมลสาธารณะบนพอร์ต 443 จอร์แดนจะเปรียบเทียบกับเอนด์พอยต์ผู้ดูแลระบบที่บันทึกไว้หรือกำหนดค่าไว้ ข้อผิดพลาด 404 บนโฮสต์เว็บเมลไม่ได้หมายความว่าคอนโซลผู้ดูแลระบบของ Zimbra เองนั้นใช้งานไม่ได้ หากพอร์ต 7071 ถูกบล็อกจากอินเทอร์เน็ตสาธารณะโดยเจตนา ให้ทดสอบเฉพาะจากเครือข่ายที่ได้รับอนุญาตหรือภายในเครื่องเท่านั้น อย่าเปิดให้สาธารณะเข้าถึงเพื่อทดสอบ คำแนะนำเกี่ยวกับพร็อกซีของ Zimbra แนะนำให้จำกัดการเข้าถึงโดยตรงไปยัง 7071 เมื่อผู้ดูแลระบบใช้เอนด์พอยต์พร็อกซี
2. เปรียบเทียบเส้นทางตรงและเส้นทางพร็อกซี
ทดสอบทีละเส้นทาง โดยใช้ชื่อโฮสต์ รูปแบบ และพอร์ตที่ถูกต้อง หากการเข้าถึงโดยตรงบนพอร์ต 7071 ทำงานได้จากเครือข่ายที่ได้รับอนุญาต แต่เส้นทางพร็อกซีบนพอร์ต 9071 ส่งคืนรหัส 404 ให้ตรวจสอบการกำหนดค่า Admin Console ของพร็อกซีและการกำหนดเส้นทางชื่อโฮสต์ หากเส้นทางโดยตรงยังคงล้มเหลว ให้ตรวจสอบเซิร์ฟเวอร์เมลบ็อกซ์และใบรับรองที่ติดตั้งในบริการ Admin Console หากเส้นทาง Zimbra ทั้งสองทำงานได้ แต่ URL สาธารณะยังคงส่งคืนรหัส 404 ให้ตรวจสอบโหลดบาลานเซอร์ภายนอก รีเวิร์สพร็อกซี CDN หรือไฟร์วอลล์เว็บแอปพลิเคชันที่อยู่ด้านหน้า Zimbra
ใช้การเปรียบเทียบนี้เพื่อการวินิจฉัย ไม่ใช่เป็นคำสั่งเพื่อเปิดใช้งานการเข้าถึงเครือข่ายใหม่ พอร์ตโดยตรงที่ถูกบล็อกอาจเป็นการควบคุมความปลอดภัยโดยเจตนาคู่มือการตั้งค่าพร็อกซีคอนโซลผู้ดูแลระบบ ของ Zimbra อธิบายถึงตัวรับฟัง 9071 ที่เป็นตัวเลือก และระบุว่าคอนโซลผู้ดูแลระบบของเซิร์ฟเวอร์เมลบ็อกซ์โดยปกติจะยังคงอยู่ที่ 7071
3. ตรวจสอบบันทึกการใช้งานบริการ Zimbra และพร็อกซี
เข้าสู่ระบบโฮสต์ Zimbra โดยใช้บัญชีผู้ดูแลระบบที่เหมาะสมกับการติดตั้งของคุณ จากนั้นตรวจสอบสถานะบริการ คำสั่งสถานะต่อไปนี้เป็นแบบอ่านอย่างเดียว:
su - zimbra
zmcontrol status
zmproxyctl status
zmcontrol statusคำสั่งนี้จะแสดงสถานะของส่วนประกอบ Zimbra zmproxyctl statusมีประโยชน์เมื่อติดตั้ง Zimbra Proxy แล้ว หากไม่สามารถใช้คำสั่งนี้ได้ หรือโทโพโลยีของคุณไม่มี Zimbra Proxy ให้ข้ามไปและตรวจสอบส่วนประกอบที่ให้บริการ URL นั้นโดยตรง กล่องจดหมายหรือส่วนประกอบพร็อกซีที่หยุดทำงานอาจเป็นสาเหตุของเส้นทางที่ล้มเหลว แต่ไม่ควรเริ่มต้นเซิร์ฟเวอร์ทั้งหมดใหม่เพียงเพราะ URL หนึ่งส่งคืนรหัส 404
ตรวจสอบสถานะการให้บริการก่อน คำสั่งที่แสดงเป็นเพียงคำสั่งวินิจฉัยและไม่ได้แก้ไขเซิร์ฟเวอร์
สำหรับคำขอผ่านพร็อกซี Zimbra จะระบุ/opt/zimbra/log/nginx.access.logและ/opt/zimbra/log/nginx.logแสดงบันทึกพร็อกซีที่เป็นประโยชน์ เปรียบเทียบเวลาที่ร้องขอและโฮสต์/พาธที่ร้องขอกับคำตอบที่บันทึกไว้ หากคำขอไม่ปรากฏในบันทึกพร็อกซีของ Zimbra เลย ข้อผิดพลาด 404 อาจมาจากโหลดบาลานเซอร์ต้นทางหรือบริการฟรอนต์เอนด์อื่น โปรดดูคู่มือพร็อกซีของ Zimbra และส่วนการแก้ไขปัญหา
4. ตรวจสอบว่าแต่ละปลายทางแสดงใบรับรองใด
ใบรับรองที่ต่ออายุบนดิสก์อาจไม่ใช่ใบรับรองเดียวกันกับที่บริการ Zimbra ทุกบริการกำลังโหลดอยู่ในปัจจุบัน จากโฮสต์ Zimbra ให้เรียกใช้การตรวจสอบใบรับรองที่ใช้งานอยู่ของตัวจัดการใบรับรองโดยใช้ไวยากรณ์ที่รองรับโดยเวอร์ชันที่ติดตั้งของคุณ:
/opt/zimbra/bin/zmcertmgr viewdeployedcrt
ใช้โปรแกรมจัดการใบรับรองของ Zimbra เพื่อตรวจสอบใบรับรองที่ติดตั้งสำหรับบริการภายในเครื่อง รวมถึงบริการพร็อกซีและกล่องจดหมาย (หากมี)
ตรวจสอบรายละเอียดใบรับรองสำหรับบริการที่จัดการเส้นทางที่ล้มเหลว รวมถึงวันหมดอายุและชื่อโฮสต์หรือชื่อทางเลือกของหัวเรื่อง หากเบราว์เซอร์เข้าถึงพอร์ต 443 ผ่านตัวยุติ TLS ภายนอก ให้ตรวจสอบใบรับรองและการกำหนดค่าการกำหนดเส้นทางที่นั่นด้วยเช่นกัน Zimbra อาจไม่ใช่ส่วนประกอบที่แสดงใบรับรองสาธารณะนั้น ในการใช้งานแบบหลายเซิร์ฟเวอร์ ให้ตรวจสอบโหนดพร็อกซีและกล่องจดหมายที่เกี่ยวข้อง Zimbra ระบุว่าviewdeployedcrtรายงานเฉพาะเซิร์ฟเวอร์ภายในเครื่อง ดังนั้นการตรวจสอบเพียงโหนดเดียวจึงไม่ใช่หลักฐานว่าทุกโหนดมีใบรับรองที่ต่ออายุแล้ว
หากมีการติดตั้งใบรับรองที่ถูกต้องแล้ว และอาการผิดปกติเพียงอย่างเดียวคือข้อผิดพลาด HTTP 404 ให้ตรวจสอบเส้นทางและการกำหนดเส้นทางพร็อกซีต่อไปแทนที่จะต่ออายุใบรับรองซ้ำ ๆ หากใบรับรองที่ติดตั้งนั้นหมดอายุ ไม่ถูกต้อง หรือไม่ตรงกับคีย์ส่วนตัวหรือห่วงโซ่ ให้ทำตามขั้นตอนการติดตั้งใบรับรองสำหรับเวอร์ชัน Zimbra ของคุณ
5. ติดตั้งใบรับรองใหม่เฉพาะเมื่อการตรวจสอบแสดงว่าจำเป็นเท่านั้น
ก่อนที่จะเปลี่ยนใบรับรอง โปรดตรวจสอบให้แน่ใจว่าคุณมีคีย์ส่วนตัวที่ตรงกัน ใบรับรองเซิร์ฟเวอร์ที่ต่ออายุแล้ว และห่วงโซ่ CA ที่สมบูรณ์จากผู้ให้บริการของคุณ เก็บรักษาคีย์ส่วนตัวไว้ให้ปลอดภัย ในตัวอย่างสมมติของจอร์แดน ไฟล์มีชื่อว่าcommercial.key, commercial.crt, และca_chain.crt; โปรดแทนที่ด้วยเส้นทางจริงบนเซิร์ฟเวอร์ของคุณ ชื่อไฟล์ด้านล่างเป็นเพียงตัวอย่าง ไม่ใช่ไฟล์ที่ Zimbra สร้างขึ้นโดยอัตโนมัติ
ตัวอย่างส่วนประกอบของชุดใบรับรอง: ใบรับรองเซิร์ฟเวอร์, คีย์ส่วนตัวที่ตรงกัน และห่วงโซ่ CA
สำหรับใบรับรองเชิงพาณิชย์ Zimbra จะจัดทำเอกสารตรวจสอบว่าใบรับรองตรงกับคีย์และห่วงโซ่ก่อนการใช้งาน ปรับคำสั่งให้เข้ากับเส้นทางและสิทธิ์ของผู้ใช้ที่จำเป็นสำหรับเวอร์ชันของคุณ:
/opt/zimbra/bin/zmcertmgr verifycrt comm \
/opt/zimbra/ssl/zimbra/commercial/commercial.key \
/tmp/commercial.crt \
/tmp/ca_chain.crt
ตรวจสอบความถูกต้องของใบรับรอง กุญแจ และห่วงโซ่ก่อนทำการติดตั้งใช้งาน ภาพนี้แสดงเฉพาะคำนำหน้าคำสั่งเท่านั้น ไม่ใช่การตรวจสอบที่เสร็จสมบูรณ์
ดำเนินการต่อเฉพาะเมื่อผลการตรวจสอบยืนยันว่าคีย์ตรงกันและห่วงโซ่ใบรับรองถูกต้อง หากการตรวจสอบล้มเหลว ให้หยุดและแก้ไขคีย์ ใบรับรอง หรือห่วงโซ่ระดับกลาง อย่าใช้งานใบรับรองที่ไม่ตรงกันเพื่อดูว่าจะแก้ไขข้อผิดพลาด 404 ได้หรือไม่
เมื่อการตรวจสอบสำเร็จ รูปแบบการใช้งานใบรับรองเชิงพาณิชย์ที่ระบุไว้ในเอกสารมีดังนี้:
/opt/zimbra/bin/zmcertmgr deploycrt comm \
/tmp/commercial.crt \
/tmp/ca_chain.crt
ควรทำการติดตั้งหลังจากตรวจสอบความถูกต้องเรียบร้อยแล้วเท่านั้น คำนำหน้าคำสั่งที่แสดงเป็นเพียงตัวอย่าง ไม่ใช่การติดตั้งที่เสร็จสมบูรณ์
คำสั่งเหล่านี้ไม่ใช่คำแนะนำการต่ออายุใบรับรองแบบทั่วไป เอกสารเกี่ยวกับใบรับรองของ Zimbra มีหมายเหตุเกี่ยวกับสิทธิ์การใช้งานเฉพาะรุ่น และการใช้งานแบบหลายโหนดจำเป็นต้องติดตั้งและตรวจสอบใบรับรองบนโหนดที่ให้บริการทราฟฟิกที่เกี่ยวข้อง ตรวจสอบคอนโซลการดูแลระบบและเครื่องมือใบรับรอง CLI และสำหรับระบบที่ใช้ Let's Encrypt ให้ดูคำแนะนำเกี่ยวกับ ใบรับรอง Zimbra Let's Encrypt เวอร์ชันปัจจุบันอย่าคัดลอกคำสั่งจากเวอร์ชันเก่าโดยไม่ตรวจสอบกับเวอร์ชันที่ติดตั้งไว้
6. รีสตาร์ทบริการที่ได้รับผลกระทบ จากนั้นทดสอบทั้งสองปลายทาง
หมายเหตุเกี่ยวกับการติดตั้งใบรับรองจาก Zimbra ระบุว่าจำเป็นต้องรีสตาร์ทบริการเพื่อให้โหลดใบรับรองใหม่ เลือกการรีสตาร์ทที่แคบที่สุดเท่าที่โทโพโลยีและเวอร์ชันของคุณรองรับ หากต้องการโหลดเฉพาะใบรับรอง Zimbra Proxy หรือการกำหนดค่าพร็อกซีที่สร้างขึ้นใหม่ คำสั่งบริการพร็อกซีคือ:
zmproxyctl restart
ควรทำการรีสตาร์ทพร็อกซีเฉพาะเมื่อเป็นส่วนประกอบที่ได้รับผลกระทบ และการรีสตาร์ทพร็อกซีเหมาะสมกับการใช้งานของคุณเท่านั้น
การรีสตาร์ท แบบเต็มรูปแบบzmcontrol restartจะส่งผลกระทบต่อบริการ Zimbra บนโฮสต์นั้น และอาจทำให้การเข้าถึงอีเมลหยุดชะงัก ควรใช้ในระหว่างช่วงเวลาการบำรุงรักษาเมื่อขั้นตอนการติดตั้งใบรับรองสำหรับเวอร์ชันของคุณต้องการ และวางแผนสำหรับทุกโหนดที่ได้รับผลกระทบ คู่มือใบรับรองของ Zimbra อธิบายการรีสตาร์ทบริการแบบเต็มรูปแบบในขั้นตอนการใช้ใบรับรองเชิงพาณิชย์สำหรับเซิร์ฟเวอร์เดียว ส่วนคู่มือพร็อกซีอธิบายว่าการรีสตาร์ทพร็อกซีจะสร้างการกำหนดค่าพร็อกซีขึ้นใหม่ก่อนที่จะเริ่มพร็อกซีอีกครั้ง อย่าเรียกใช้การรีสตาร์ททั้งสองเส้นทางโดยอัตโนมัติ
หลังจากบริการที่เลือกกลับมาใช้งานได้แล้ว ให้ทดสอบ URL เดิมอีกครั้ง: เริ่มจากที่อยู่ Admin Console โดยตรงหรือผ่านพร็อกซีจากเครือข่ายที่ได้รับอนุญาต จากนั้นทดสอบกับ URL สาธารณะหรือแบบโหลดบาลานซ์ ตรวจสอบให้แน่ใจว่าหน้าเข้าสู่ระบบที่คาดหวังโหลดขึ้นมา เบราว์เซอร์แสดงใบรับรองที่ต่ออายุแล้วสำหรับชื่อโฮสต์ และบันทึกที่เกี่ยวข้องไม่แสดงข้อผิดพลาดเกี่ยวกับเส้นทางหรือต้นทางสำหรับคำขอนั้นอีกต่อไป ในตัวอย่างสมมติของจอร์แดน การตรวจสอบคือว่าบุ๊กมาร์กที่บันทึกไว้ชี้ไปยังปลายทางที่กำหนดค่าไว้หรือไม่ ไม่ใช่ว่าได้ผลลัพธ์การทดสอบที่สร้างขึ้นมาหรือไม่
คุณควรพิจารณาตรวจสอบข้อมูลนอก Zimbra เมื่อใด?
หากปลายทางโดยตรงและปลายทางพร็อกซีที่กำหนดค่าไว้ของ Zimbra ตอบกลับอย่างถูกต้อง แต่ URL สาธารณะยังคงส่งคืนรหัส 404 แสดงว่าสาเหตุอาจมาจากส่วนหน้าภายนอกหรือกฎโฮสต์เสมือน ตรวจสอบชื่อโฮสต์และพอร์ตอัปสตรีมของพร็อกซีแบบย้อนกลับ การตั้งค่าการยุติ TLS ส่วนหัวโฮสต์ที่ส่งต่อ และกฎการเขียน URL ใหม่ หากใบรับรองสาธารณะสิ้นสุดภายนอก Zimbra การต่ออายุใบรับรองภายในของ Zimbra เพียงอย่างเดียวจะไม่สามารถอัปเดตตัวรับฟังภายนอกนั้นได้
สำหรับคำตอบที่ได้รับจาก Zimbra Proxy ให้เปรียบเทียบเวลาและสถานะnginx.access.logกับรายละเอียดในnginx.logไฟล์บันทึก หากไม่มีคำตอบใด ๆ ในบันทึกเหล่านั้น ให้ตรวจสอบพร็อกซีภายนอกหรือโหลดบาลานเซอร์ หลีกเลี่ยงการแก้ไขไฟล์ Zimbra NGINX ที่สร้างขึ้นโดยตรง เนื่องจากบริการพร็อกซีของ Zimbra จะสร้างการกำหนดค่าใหม่เมื่อเริ่มต้นใหม่ ดังนั้นการเปลี่ยนแปลงถาวรควรปฏิบัติตามวิธีการกำหนดค่าพร็อกซีที่รองรับสำหรับเวอร์ชันที่ติดตั้ง
คุณจะรู้ได้อย่างไรว่าการซ่อมแซมเสร็จสมบูรณ์แล้ว?
- บุ๊กมาร์กนี้ใช้ชื่อโฮสต์ รูปแบบ พอร์ต และเส้นทางที่กำหนดค่าไว้
- ปลายทาง Admin Console ที่ตั้งใจไว้ตอบสนองจากเครือข่ายที่ได้รับอนุญาต พอร์ตโดยตรงที่ถูกบล็อกโดยเจตนาจะยังคงถูกบล็อกต่อไป
- รายงานบริการที่เกี่ยวข้องของ Zimbra ระบุว่าทำงานอยู่ และใบรับรองที่ใช้งานอยู่ตรงกับชื่อโฮสต์และระยะเวลาที่ใช้งานได้ในปัจจุบัน
- พร็อกซีหรือส่วนหน้าภายนอกจะแสดงหน้า Admin Console ที่คาดหวังไว้ แทนที่จะเป็นข้อผิดพลาด 404
- บันทึกแสดงให้เห็นว่าคำขอไปถึงส่วนประกอบที่คาดหวังไว้แล้ว และไม่มีโหนดอื่นใดที่ยังคงแสดงใบรับรองเก่าอยู่
เอกสารทางการของ Zimbra ที่ใช้เป็นข้อมูลอ้างอิงสำหรับคู่มือนี้ระบุว่า พอร์ต 7071 เป็นพอร์ตเริ่มต้นสำหรับการเข้าถึง Admin Console โดยตรง และพอร์ต 9071 เป็นพอร์ตเสริมสำหรับการเข้าถึง Admin Console แบบพร็อกซี เนื่องจากข้อผิดพลาด 404 อาจเกิดขึ้นได้ในหลายระดับ จึงควรใช้ค่าเริ่มต้นเหล่านี้เป็นข้อมูลเบื้องต้นในการวินิจฉัย และตรวจสอบค่าจริงในเวอร์ชันและโครงสร้างเครือข่าย Zimbra ของคุณอีกครั้ง
เอกสารอ้างอิงอย่างเป็นทางการ