Я пытаюсь создать и установить SSL-сертификат Let's Encrypt с помощью certbot. Это для поддомена с именем private.mydomain.de (на другом сервере, чем mydomain.de). Certbot прекращает работу со следующими сообщениями:
An unexpected error occurred:
AttributeError: 'module' object has no attribute 'TLSSNI01'
Пошел в https://letsdebug.net/ и проверил соответствующий домен.
HTTP-01 и DNS-01 тесты пройдены, TLS-ALPN-01 не работает с этими подробными сообщениями об ошибках:
IssueFromLetsEncrypt
ERROR
A test authorization for private.mydomain.de to the Let's Encrypt staging service
has revealed issues that may prevent any certificate for this domain being issued.
Connection refused
DEBUG
Challenge update failures for private.mydomain.de in order
https://acme-staging-v02.api.letsencrypt.org/acme/order/<....>/<....>
acme: error code 400 "urn:ietf:params:acme:error:connection":
Connection refused PublicSuffix
RateLimit
DEBUG
1 Certificates contributing to rate limits for this domain
Serial: <serialnr>
NotBefore: 2020-02-02 22:23:22 +0000 UTC
Names: [finance.mydomain.de mydomain.de]
Мой план сейчас состоит в том, чтобы отозвать сертификат, способствующий ограничению скорости:
Используемый https://censys.io/certificates?q=...serialnr и скопировал PEM, вставил его в https://tools.letsdebug.net/cert-revoke, выполнил задачи DNS и проверил с помощью dig. После этого операция «Отменить сертификат» прерывается с ошибкой:
An error occured
Unfortunately something went wrong during the process. Usually this is
not recoverable - you will need to start from the beginning.
Error: Request failed with status code 400
Попробовал еще раз с тем же результатом, теперь я спрашиваю, что мне делать?
ОБНОВИТЬ Я переименовал сервер в nginx.conf с «private.mydomain.de» на «consult.mydomain.de». Этот поддомен ранее использовался на этом сервере и ранее имел сертификат (который был удален с помощью certbot delete --cert-name ...). С этим новым старым именем Certbot без проблем запустился, создал и установил сертификат.
РЕШЕНИЕ
После еще нескольких проблем с Certbot и дополнительных исследований я нашел следующее решение: в Oracle Cloud Infrastructure (OCI) с Oracle Linux 7 не используйте Certbox, а установите certbot-auto:
'' '
wget https://dl.eff.org/certbot-auto
sudo mv certbot-auto / usr / local / bin / certbot-auto
sudo chown корень / usr / local / bin / certbot-auto
Судо chmod 0755 / usr / local / bin / certbot-auto
sudo / usr / local / bin / certbot-auto certonly --standalone
'' '
Из: https://blogs.oracle.com/developers/free-ssl-certificates-in-the-oracle-cloud-using-certbot-and-lets-encrypt
Я смог создать и установить все желаемые сертификаты.
Для очень хрупкого обходного пути вы можете отредактировать /usr/lib/python3/dist-packages/certbot_nginx/configurator.py
и заменить return [challenges.HTTP01, challenges.TLSSNI01]
с участием return [challenges.HTTP01]
(или вы ... можете использовать плагин webroot)
У меня была такая же проблема после обновления до Ubuntu 20.04.
На Focal работает однострочная установка: https://github.com/vinyll/certbot-install#how-to-install
Это решено для меня, и есть удаление также, когда Certbot PPA будет исправлен.
Используйте плагин webroot:
certbot certonly --webroot -w /var/www/yourdoma.in -d yourdoma.in
где /var/www/yourdoma.in
корневой веб-каталог вашего домена.