Позволяет зашифровать с помощью Certbot не удается в kubernetes (хотя работает с cert-manager) - PullRequest
0 голосов
/ 24 марта 2020

У меня есть кластер Kubernetes версии 1.15.5 в Azure, где я установил cert-manager версия v0.14.0

Работает нормально с автоматической выдачей, позволяет шифровать сертификаты против действительное имя DNS: MY_DOMAIN , указывающее на внешний IP-адрес входного контроллера.

Я также хотел бы иметь возможность сделать то же самое, например, certbot . Я попытался запустить certbot в моем кластере с:

kubectl run --generator=run-pod/v1 certbot-shell --rm -i --tty --image certbot/certbot:amd64-latest -- -d MY_DOMAIN --manual --preferred-challenges http certonly

Но это не удается с:

Create a file containing just this data:

QAPu****-klNq1RBgY

And make it available on your web server at this URL:

http://MY_DOMAIN/.well-known/acme-challenge/QAPu****-klNq1RBgY

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


Press Enter to Continue
Waiting for verification...
Challenge failed for domain MY_DOMAIN
http-01 challenge for MY_DOMAIN
Cleaning up challenges
Some challenges have failed.

IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: MY_DOMAIN
   Type:   unauthorized
   Detail: Invalid response from
   http://MY_DOMAIN/.well-known/acme-challenge/QAPuDTHa****1qlLLOg
   [13.x.x.x]: 404

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A/AAAA record(s) for that domain

Так что каким-то образом cert-manager автоматически позаботится о создании файл во время испытания и сделать его доступным по адресу:

http://MY_DOMAIN/.well-known/acme-challenge/QAPu****-klNq1RBgY

Но я не уверен, как мне это сделать при использовании certbot или если есть какой-то другой способ сделать это ??

Основываясь на приведенных ниже предложениях, я попытался вместо этого установить Kube le go (0.1.2) (для устаревшего кластера 1.8), но, похоже, произошел сбой:

level=error msg="Error while processing certificate requests: 403 urn:acme:error:unauthorized: Account creation on ACMEv1 is disabled. Please upgrade your ACME client to a version that supports ACMEv2 / RFC 8555. See https://community.letsencrypt.org/t/end-of-life-plan-for-acmev1/88430 for details." context=kubelego 

Итак, я попытался обновить до:

https://acme-staging-v02.api.letsencrypt.org/directory

но тогда я получу:

level=error msg="Error while processing certificate requests: Head : unsupported protocol scheme \"\"" context=kubelego

Я нашел:

https://github.com/jetstack/kube-lego/issues/301

Похоже, kube-le go нельзя использовать с ACME версии 2: - (

1 Ответ

1 голос
/ 24 марта 2020

Краткая версия комментариев: certbot в режиме DNS, вероятно, будет работать, а HTTP01 - нет, поскольку вам нужно будет динамически настраивать параметры Ingress, что в точности и делает cert-manager. В целом, это отличный пример того, почему запуск версии Kube с 2.5 лет go не годится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...