ฉันใช้เซิร์ฟเวอร์ Ubuntu 14.04 เก่า มันทำงานโดยไม่มีปัญหามาหลายปีแล้ว แต่ด้วยการเลิกใช้ ACMEv1 ล่าสุดฉันไม่สามารถต่ออายุใบรับรองได้อีก ฉันได้ googled เกี่ยวกับวิธีจัดการกับปัญหานี้ แต่ฉันไม่แน่ใจว่าต้องทำอย่างไร
ในเซิร์ฟเวอร์ของฉันไม่ได้ทำ "การติดตั้งอย่างเป็นทางการ" ของ letsencrypt แต่ฉันเพิ่งโคลนมันไปยังโฟลเดอร์ที่กำหนดเอง
คำถามของฉันคือ ฉันสามารถสร้าง อัปเดตคอมไพล์
หรือโคลนให้เข้ารหัสอีกครั้งเป็นเวอร์ชันล่าสุดและคาดว่าทุกอย่างจะทำงานได้ดี การอัปเกรดเซิร์ฟเวอร์ของฉันไม่ใช่ทางเลือกในตอนนี้ เกี่ยวกับการโคลน ฉันสงสัยว่าฉันอาจมีปัญหากับ python/pip เวอร์ชันเก่าของฉันเช่นกัน ซึ่งก็คือ 2.7.6 และ pip 1.5.4 การพยายามดูว่าเกิดอะไรขึ้นไม่ใช่ตัวเลือกเช่นกัน มีหลายสิ่งที่ไม่สามารถกู้คืนได้ง่าย ดังนั้นฉันจึงต้องการคำแนะนำจากผู้เชี่ยวชาญก่อนที่จะดำเนินการทั้งหมด ต้นตอของปัญหาคือการเลิกใช้ ACMEv1 ดังนั้นฉันจึงสงสัยว่าวิธีใดที่รุกรานน้อยที่สุดในการแก้ปัญหาเฉพาะนั้น อัปเดตคอมไพล์
หรือโคลนใหม่ดูตรงไปตรงมา
การกระทำที่ฉันโคลนคือสิ่งต่อไป:
$ git log --name-status HEAD^..HEAD
กระทำ 4c28fc417c978090ae8def91b81ed59f439e797a (HEAD -> master, origin/master, origin/HEAD)
รวม: b57371a3 0454031c
ผู้เขียน: bmw <[email protected]>
วันที่: อังคาร 5 มกราคม 18:02:19 2016 -0500
รวมคำขอดึง #2073 จาก alex/more-typos
แก้ไขข้อผิดพลาดใน docstrings
กระทำ 0454031cce4b88fef44e3e129e879a35b49c2314
ผู้เขียน: อเล็กซ์ เกย์เนอร์ <[email protected]>
วันที่: อา. 3 ม.ค. 14:37:08 น. 2559 -0500
แก้ไขข้อผิดพลาดใน docstrings
M acme/acme/jose/json_util.py
M acme/acme/jose/util.py
ใช่ มันเก่าแล้ว
นอกจากนี้ ฉันมีการเปลี่ยนแปลงในเครื่องบางอย่าง ซึ่งทั้งหมดสร้างขึ้นโดยอัตโนมัติโดย letsencrypt ถ้าฉันจำไม่ผิด ฉันจำไม่ได้ว่าแก้ไขไฟล์ใด ๆ เหล่านั้น:
สถานะคอมไพล์ $
บนสาขาหลัก
สาขาของคุณเป็นปัจจุบันด้วย 'origin/master'
การเปลี่ยนแปลงที่ไม่ได้จัดฉากสำหรับการกระทำ:
(ใช้ "git add <file>..." เพื่ออัปเดตสิ่งที่จะทำ)
(ใช้ "git restore <file>..." เพื่อละทิ้งการเปลี่ยนแปลงในไดเร็กทอรีการทำงาน)
เปลี่ยนประเภท: acme/examples/standalone/localhost/cert.pem
เปลี่ยนประเภท: acme/examples/standalone/localhost/key.pem
เปลี่ยนรูปแบบ: bootstrap/archlinux.sh
เปลี่ยนรูปแบบ: bootstrap/centos.sh
เปลี่ยนรูปแบบเป็น bootstrap/debian.sh
เปลี่ยนรูปแบบเป็น bootstrap/fedora.sh
เปลี่ยนรูปแบบเป็น bootstrap/gentoo.sh
เปลี่ยนรูปแบบเป็น bootstrap/manjaro.sh
เปลี่ยนรูปแบบ: bootstrap/suse.sh
เปลี่ยนประเภท: bootstrap/ubuntu.sh
เปลี่ยนประเภท: letsencrypt-apache/letsencrypt_apache/tests/testdata/debian_apache_2_4/default_vhost/apache2/conf-enabled/other-vhosts-access-log.conf
เปลี่ยนประเภท: letsencrypt-apache/letsencrypt_apache/tests/testdata/debian_apache_2_4/default_vhost/apache2/conf-enabled/security.conf
เปลี่ยนประเภท: letsencrypt-apache/letsencrypt_apache/tests/testdata/debian_apache_2_4/default_vhost/apache2/conf-enabled/serve-cgi-bin.conf
เปลี่ยนประเภท: letsencrypt-apache/letsencrypt_apache/tests/testdata/debian_apache_2_4/default_vhost/apache2/sites-enabled/000-default.conf
เปลี่ยนประเภท: letsencrypt-apache/letsencrypt_apache/tests/testdata/debian_apache_2_4/two_vhost_80/apache2/conf-enabled/other-vhosts-access-log.conf
เปลี่ยนประเภท: letsencrypt-apache/letsencrypt_apache/tests/testdata/debian_apache_2_4/two_vhost_80/apache2/conf-enabled/security.conf
เปลี่ยนประเภท: letsencrypt-apache/letsencrypt_apache/tests/testdata/debian_apache_2_4/two_vhost_80/apache2/conf-enabled/serve-cgi-bin.conf
เปลี่ยนประเภท: letsencrypt-apache/letsencrypt_apache/tests/testdata/debian_apache_2_4/two_vhost_80/apache2/sites-enabled/000-default.conf
เปลี่ยนประเภท: letsencrypt-apache/letsencrypt_apache/tests/testdata/debian_apache_2_4/two_vhost_80/apache2/sites-enabled/encryption-example.conf
เปลี่ยนประเภท: letsencrypt-apache/letsencrypt_apache/tests/testdata/debian_apache_2_4/two_vhost_80/apache2/sites-enabled/letsencrypt.conf
เปลี่ยนประเภท: letsencrypt-apache/letsencrypt_apache/tests/testdata/debian_apache_2_4/two_vhost_80/apache2/sites-enabled/mod_macro-example.conf
เปลี่ยนประเภท: letsencrypt-nginx/letsencrypt_nginx/tests/testdata/etc_nginx/ubuntu_nginx_1_4_6/default_vhost/nginx/sites-enabled/default
เปลี่ยนประเภท: letshelp-letsencrypt/letshelp_letsencrypt/testdata/mods-enabled/ssl.load
ไฟล์ที่ไม่ได้ติดตาม:
(ใช้ "git add <file>..." เพื่อรวมในสิ่งที่จะคอมมิท)
ให้เข้ารหัส.zip
ไม่มีการเพิ่มการเปลี่ยนแปลงในการคอมมิต (ใช้ "git add" และ/หรือ "git commit -a")
สุดท้ายนี้ ฉันต่ออายุใบรับรองด้วยสคริปต์ที่มีรูปแบบดังต่อไปนี้:
#!/bin/bash
sudo /.../my-letsencrypt-clone/letsencrypt-auto certonly -v -t --webroot \
-w /var/www/web1/ -d www.domain1.com -d domain1.com -d subdomain.domain1.com \
-w /var/www/web2/ -d web2 \
-w /var/www/web3/ -d www.web3.com -d web3.com
last_cert=$(sudo find /etc/letsencrypt/live/ -type d -iname "www.domain1.com-*" | sort | หาง -n 1)
sudo ln -sfn "$last_cert" /etc/ssl/private/domain1.com
sudo บริการ apache2 รีสตาร์ท
บริการ sudo postfix เริ่มต้นใหม่
sudo doveadm โหลดซ้ำ
อย่างที่คุณอนุมานได้จากสคริปต์ ใบรับรองนั้นแชร์โดยบริการ apache2, postfix และ doveadm ของฉัน และไม่มีใครอื่น
ในของฉัน /etc/letsencrypt/live
โฟลเดอร์ฉันมีเนื้อหาดังต่อไปนี้:
รวม 28
drwxr-xr-x 2 รูท 4096 10 มี.ค. 2017 www.domain1.com
drwxr-xr-x 2 รูท 4096 12 มิ.ย. 2017 www.domain1.com-0001
drwxr-xr-x 2 รูท รูท 4096 12 มิ.ย. 2560 www.domain1.com-0002
drwxr-xr-x 2 รูท 4096 30 เม.ย. 2561 www.domain1.com-0003
drwxr-xr-x 2 รูท 4096 11 ต.ค. 2018 www.domain1.com-0004
drwxr-xr-x 2 รูท รูท 4096 13 มิ.ย. 2019 www.domain1.com-0005
drwxr-xr-x 2 รูทรูท 4096 8 มี.ค. 20:19 www.domain1.com-0006
ดังนั้นสคริปต์จึงเลือก (last_cert
ตัวแปร) โฟลเดอร์ที่มีหมายเลขสูงสุด ซึ่งเป็นโฟลเดอร์ที่ letsencrypt กำลังต่ออายุใบรับรอง และสร้าง /etc/ssl/private/domain1.com
ชี้ไปที่โฟลเดอร์นี้ เนื่องจากเป็นโฟลเดอร์ที่บริการของฉันใช้เพื่อโหลดใบรับรองหลายโดเมน