использование letsencrypt cetificate для сервера api kubelet

Я хочу использовать сертификаты подписанного центра для моего кластера Kubernetes.

поэтому я сначала пытаюсь установить и правильно настроить контроллер.

контроллер будет установлен на стабильной версии CoreOS (1185.3.0).

Насколько я понимаю, для api-server kubeelet нужны следующие сертификаты:

certificate-authority: ca.pem
client-certificate: apiserver.pem
client-key: apiserver-ke.pem

letsencrypt с использованием контейнера certbot создал следующий сертификат:

cert = /etc/letsencrypt/live/coreos-2.tux-in.com/cert.pem
privkey = /etc/letsencrypt/live/coreos-2.tux-in.com/privkey.pem
chain = /etc/letsencrypt/live/coreos-2.tux-in.com/chain.pem
fullchain = /etc/letsencrypt/live/coreos-2.tux-in.com/fullchain.pem

Итак, cert.pem - это сертификат клиента, privkey.pem - это ключ клиента, у меня нет центра сертификации, и у меня есть цепочки сертификатов, с которыми я не знаю, что делать.

Я создал сертификаты, используя rkt с изображением докера certbot, используя следующую команду:

rkt --insecure-options=image --port 443-tcp:443 run  docker://deliverous/certbot \
  --volume letsencrypt-etc,kind=host,source=/opt/letsencrypt-etc \
  --mount volume=letsencrypt-etc,target=/etc/letsencrypt \
  --volume resolv-conf,kind=host,source=/etc/resolv.conf \
  --mount volume=resolv-conf,target=/etc/resolv.conf \
  --volume certbot-tls-certs,kind=host,source=/opt/certbot-tls-certs \
  --mount volume=certbot-tls-certs,target=/var/www/tls-certs \
  -- certonly -w /var/www/tls-certs -d coreos-2.tux-in.com \
  --email [email protected] --agree-tos --standalone --preferred-challenges tls-sni-01

так что .. не знаю, как дальше двигаться дальше.

любая информация по этому вопросу будет принята с благодарностью.

Благодарность


person ufk    schedule 26.11.2016    source источник
comment
Я не уверен, что вы можете использовать сертификат LetsEncrypt для Kubernetes, потому что вам нужны сертификаты сервера / клиента, и каждый клиент должен использовать отличительные имена и регистрировать свой IP, вам также необходимо использовать альтернативное имя для DNS и Kube API, что LetsEncrypt не позволяет тебе делать. LetsEncrypt предоставляет только серверные сертификаты для TLS. Я думаю, что вы можете использовать сертификаты CloudFlare.   -  person MrE    schedule 26.11.2016


Ответы (2)


то, что сказал @MrE, правильно.

каждый клиент в кластере kubernetes должен зарегистрировать свое имя и IP-адрес, мне нужно использовать альтернативные имена ... все это не поддерживается в letsencrypt.

letsencrypt - это простая генерация сертификатов в основном для веб-серверов, letsencrypt даже не поддерживает и не планирует поддерживать подстановочные знаки. так или иначе .. letsencrypt не подходящее решение для моего случая.

person ufk    schedule 27.11.2016
comment
Давайте теперь зашифруем поддержку подстановочного знака - person severin.julien; 12.07.2021

Возможно, вы захотите взглянуть на cert-manager. Он работает с объектом Certificate, который описывает, как получить сертификат из пространства имен Issuer или всего кластера ClusterIssuer.

person Webber    schedule 28.06.2018