Оновлення сертифікатів кластера OpenShift

Цей документ описує процедуру оновлення сертифікатів роутера та API OpenShift 4.х кластера з використанням сертифікатів Let’s Encrypt.

Передумови

Для проведення процедури оновлення сертифікатів мають бути виконані наступні умови:

  1. Роль в кластері має бути cluster-admin.

  2. Встановлено oc cli.

  3. Є можливість створення та редагування DNS-записів у hosted zone, до якої відноситься доменне ім’я кластера (далі — DNS_WILDCARD).

  4. Встановлено Certbot.
    Для інсталювання Certbot зверніться до офіційного сайту.

При цьому слід обрати опцію "My HTTP website is running: None of the above on <Ваша операційна система>".

Змінну <Ваша операційна система> заповніть значенням вашої операційної системи (наприклад, macOS).

Сторінка завантаження certbot
Figure 1. Сторінка завантаження certbot
Виконувати будь-які кроки інструкції, крім власне інсталяції сertbot, не є необхідним.

Процедура оновлення

  1. Запустіть консоль з правами адміністратора / sudo.

  2. Виконайте наступну команду:

certbot certonly --manual
  1. На вимогу, тільки при першому запуску, введіть свій Email і погодьтеся з умовами використання, та погодьтеся або відмовтеся від поширення вашого Email з Electronic Frontier Foundation.

Вкажіть доменні імена для сертифікатів:

  • *.<DNS_WILDCARD>.

Наприклад, доменне ім’я може виглядати наступним чином: *.openshift.example.com.
  • *.apps.<DNS_WILDCARD>.

Наприклад, доменне ім’я може виглядати наступним чином: *.apps.openshift.example.com.
  1. Опціонально:

Якщо ви бачите повідомлення зі змістом:
"You have an existing certificate that has exactly the same domains or certificate name you requested and isn’t close to expiry.",
слід обрати варіант Renew & replace the certificate.

  1. У hosted zone, до якої відноситься DNS_WILDCARD кластера, створіть TXT-записи, що вимагає certbot. При цьому, перед тим, як продовжувати (вводити Enter), перевірте, що запис створено і він актуальний, за допомогою виконання наступної команди в іншій, одночасно відкритій консолі:

nslookup -type=txt <dns_record>
Перевірка створеного запису
Figure 2. Перевірка створеного запису
  1. У випадку успішної видачі сертифікату, ви отримаєте відповідне повідомлення, в якому можна побачити шлях до файлів із ключем і ланцюжком сертифікатів:

Успішне отримання сертифікату
Figure 3. Успішне отримання сертифікату
  1. Видаліть старий secret роутера та API, виконавши наступні команди:

oc delete secret router-certs -n openshift-ingress
oc delete secret router-certs -n openshift-config
  1. Створіть новий secret роутера і API, виконавши наступні команди:

oc create secret tls router-certs --cert=<fullchain.pem>
--key=<privkey.pem> -n openshift-ingress
oc create secret tls router-certs --cert=<fullchain.pem>
--key=<privkey.pem> -n openshift-config
  1. Видаліть поди роутера за допомогою наступної команди:

oc delete pods --all -n openshift-ingress