Я использую старый сервер Ubuntu 14.04. Он работает без проблем уже много лет, но из-за недавнего устаревания ACMEv1 я не могу снова обновить сертификаты. Я гуглил о том, как справиться с этой проблемой, но я не уверен, что делать.
На моем сервере не была произведена "официальная установка" letsencrypt. Вернее, я просто клонировал его в какую-то пользовательскую папку.
Мой вопрос в том, могу ли я просто сделать git обновление
или снова клонировать letsencrypt до более новой версии и ожидать, что все будет работать нормально? Обновление моего сервера НЕ ВОЗМОЖНО на данный момент. Что касается клонирования, я подозреваю, что у меня могут быть проблемы и с моими старыми версиями python/pip, а именно 2.7.6 и pip 1.5.4. Просто пытаться увидеть, что происходит, тоже не вариант. Есть вещи, от которых нелегко оправиться, поэтому я предпочитаю иметь какое-то экспертное руководство, прежде чем идти ва-банк. Однако корень проблемы заключается в устаревании ACMEv1, поэтому мне интересно, каков наименее инвазивный способ решения этой конкретной проблемы. git обновление
или повторно клонировать выглядит просто.
Коммит, который я клонировал, был следующим:
$ git log --name-status HEAD^..HEAD
совершить 4c28fc417c978090ae8def91b81ed59f439e797a (HEAD -> master, origin/master, origin/HEAD)
Слияние: b57371a3 0454031c
Автор: bmw <[email protected]>
Дата: Вт, 5 января 18:02:19 2016 -05:00
Запрос на слияние № 2073 от alex/more-typos
Исправлена пара опечаток в строках документации.
совершить 0454031cce4b88fef44e3e129e879a35b49c2314
Автор: Алекс Гейнор <[email protected]>
Дата: воскресенье, 3 января, 14:37:08 2016 -05:00
Исправлена пара опечаток в строках документации.
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>...", чтобы указать, что будет зафиксировано)
letsencrypt.zip
в фиксацию не добавлено никаких изменений (используйте «git add» и/или «git commit -a»)
Наконец, я обновляю сертификаты с помощью скрипта следующего формата:
#!/бин/баш
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 | tail -n 1)
sudo ln -sfn "$last_cert" /etc/ssl/private/domain1.com
перезагрузка службы sudo apache2
перезапуск постфиксной службы sudo
sudo doveadm перезагрузить
Как видно из сценария, сертификат используется только моими службами apache2, postfix и doveadm и никем другим.
В моем /etc/letsencrypt/жить
папка у меня следующего содержания:
всего 28
drwxr-xr-x 2 root root 4096 10 марта 2017 г. www.domain1.com
drwxr-xr-x 2 root root 4096 12 июня 2017 г. www.domain1.com-0001
drwxr-xr-x 2 root root 4096 12 июня 2017 г. www.domain1.com-0002
drwxr-xr-x 2 root root 4096 30 апреля 2018 г. www.domain1.com-0003
drwxr-xr-x 2 root root 4096 11 октября 2018 г. www.domain1.com-0004
drwxr-xr-x 2 root root 4096 13 июня 2019 г. www.domain1.com-0005
drwxr-xr-x 2 root root 4096 8 марта 20:19 www.domain1.com-0006
Так скрипт выбирает(last_cert
переменная) папку с наибольшим номером, в которой letsencrypt обновляет сертификаты, и сделайте /etc/ssl/частный/домен1.com
указать на него, потому что это папка, которую мои службы используют для загрузки многодоменного сертификата.