ต่ออายุใบรับรองการเข้ารหัสลับบน Apache httpd


6

ฉันใช้certbot --webrootปลั๊กอินและcertbot renewต่ออายุใบรับรองซึ่งใช้งานได้ แต่ดูเหมือนว่าhttpdแคชใบรับรองและไม่ "เห็น" ว่ามีการอัปเดต

มีสัญญาณhttpdให้โหลดใบรับรองซ้ำหรือไม่

ps ฉันไม่ต้องการรีสตาร์ทhttpdเพื่อหลีกเลี่ยงการหยุดทำงาน

คำตอบ:


8

ในการที่httpdจะสังเกตเห็นใบรับรองใหม่คุณต้องขอให้มันทำ "การรีสตาร์ทที่ดี " จากเอกสาร:

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

การรีสตาร์ทที่ดีดังกล่าวจะไม่ทำให้เครื่องหยุดทำงาน

เพื่อให้ได้รับ letencrypt / certbot เพื่อเริ่มต้นการรีสตาร์ทอย่างงดงามให้ใช้--post-hookอาร์กิวเมนต์ อาร์กิวเมนต์นี้จะเรียกใช้คำสั่งหนึ่งครั้งหากพยายามต่ออายุใบรับรองใด ๆ จากเอกสาร :

คำสั่งที่จะรันในเชลล์หลังจากพยายามขอรับ / ต่ออายุใบรับรอง สามารถใช้เพื่อปรับใช้ใบรับรองที่ต่ออายุหรือเพื่อรีสตาร์ทเซิร์ฟเวอร์ใด ๆ ที่ถูกหยุดโดย --pre-hook สิ่งนี้จะทำงานเฉพาะเมื่อมีความพยายามในการขอรับ / ต่ออายุใบรับรอง (ค่าเริ่มต้น: ไม่มี)

ดังนั้นคำสั่งที่คุณต้องการคือ

certbot renew --post-hook "apachectl graceful"

หรือถ้าทำงานจากงาน cron

certbot renew --quiet --post-hook "apachectl graceful"

(ขอบคุณ @RustyX สำหรับความช่วยเหลือเกี่ยวกับคำตอบนี้)


1
ขอบคุณที่ชี้ข้อผิดพลาดในโซลูชันของฉัน! ฉันลบมัน
rustyx

มีตัวเลือกในการใช้โพสต์เบ็ดหรือไม่หากประสบความสำเร็จในการต่ออายุใบรับรองหรือไม่
2560

2
@malhal --post-hookทริกเกอร์เฉพาะในกรณีที่มีการต่ออายุใบรับรอง หากไม่จำเป็นต้องต่ออายุก็ไม่ได้เรียก
gene_wood

AFAIU --post-hookคำสั่งจะรันต่อเมื่อมีการพยายามต่ออายุ (แต่ไม่ใช่ถ้าใบรับรองยังคงใช้ได้และข้ามการต่ออายุ) --deploy-hookจะดำเนินการเฉพาะในกรณีการต่ออายุก็ประสบความสำเร็จ
Jérôme

ยัง AFAIU --deploy-hookถูกเพิ่มในเวอร์ชัน 0.17 ซึ่งเปิดตัวในเดือนกรกฎาคม 2017 หลังจากคำตอบและความคิดเห็นของคุณด้านบน
Jérôme
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.