Как автоматически продлить SSL-сертификат Let's Encrypt для Cloud Run для Anthos в Google Cloud с бессерверным режимом?

Я создал сервис Cloud Run для Anthos в Google Cloud, а сертификат SSL сделан Letâ € ™ s Encrypt. Я хочу автоматически обновлять сертификат на бессерверном сервере, а не на GCE.

Как я могу это сделать?

Могу ли я использовать cronJob на GKE?

Я просто вручную создал сертификат на своем ноутбуке.

sudo certbot certonly --manual --preferred-challenges dns -d '*.default.domain'
sudo kubectl create --namespace istio-system secret tls istio-ingressgateway-certs \
--key /etc/letsencrypt/live/default.domain/privkey.pem \
--cert /etc/letsencrypt/live/default.domain/fullchain.pem

3 ответа

Теперь у нас есть документ GCP «Использование управляемых сертификатов TLS и HTTPS» https://cloud.google.com/anthos/run/docs/managed-tls .

Сертификаты Let's Encrypt, созданные вручную с помощью проверки DNS, не могут быть обновлены, если вы не сохранили закрытый ключ, использованный для подписи исходного CSR, и не сможете изменять серверы имен домена с помощью вызовов TXT DNS.

Мне неизвестны приложения, которые принимают заранее созданные сертификаты SSL. Обычно эти приложения запускаются с нуля и все настраивают.

Я рекомендую установить Cert-Manager и перевыпустить ваш SSL-сертификат и настроить автоматическое продление.

Однако вы заявили, что хотите сделать это "бессерверным". Существует множество примеров создания SSL-сертификатов Let's Encrypt с помощью DNS-запроса в Интернете. Однако я не видел ни одной, которая также обрабатывала бы обновления. Здесь нет никаких технических проблем, вам просто нужен плагин, который модифицирует ваши серверы имен с правильными записями TXT. Если вы понимаете интерфейс ACME, вы можете разработать собственное программное обеспечение. В противном случае я бы использовал Kubernetes Cert-Manager или другой поддерживаемый пакет.

Да, вы можете использовать CronJob в GKE(находится в стадии бета-тестирования):

https://cloud.google.com/kubernetes-engine/docs/how-to/cronjobs

Либо вы можете использовать планировщик GCP CLoud:

https://cloud.google.com/scheduler/docs/tut-pub-sub