Оновлення сертифікатів кластера OpenShift
Цей документ описує процедуру оновлення сертифікатів роутера та API OpenShift 4.х кластера з використанням сертифікатів Let’s Encrypt.
Передумови
Для проведення процедури оновлення сертифікатів мають бути виконані наступні умови:
-
Роль в кластері має бути
cluster-admin
. -
Встановлено
oc cli
. -
Є можливість створення та редагування DNS-записів у hosted zone, до якої відноситься доменне ім’я кластера (далі —
DNS_WILDCARD
). -
Встановлено Certbot.
Для інсталювання Certbot зверніться до офіційного сайту.
При цьому слід обрати опцію "My HTTP website is running: None of the above on <Ваша операційна система>". |
Змінну <Ваша операційна система>
заповніть значенням вашої операційної системи (наприклад, macOS
).
![Сторінка завантаження certbot](../_images/certificates-update/certificates-update-1.png)
Виконувати будь-які кроки інструкції, крім власне інсталяції сertbot, не є необхідним. |
Процедура оновлення
-
Запустіть консоль з правами адміністратора /
sudo
. -
Виконайте наступну команду:
certbot certonly --manual
-
На вимогу, тільки при першому запуску, введіть свій Email і погодьтеся з умовами використання, та погодьтеся або відмовтеся від поширення вашого Email з Electronic Frontier Foundation.
Вкажіть доменні імена для сертифікатів:
-
*.<DNS_WILDCARD>
.
Наприклад, доменне ім’я може виглядати наступним чином: *.openshift.example.com .
|
-
*.apps.<DNS_WILDCARD>
.
Наприклад, доменне ім’я може виглядати наступним чином: *.apps.openshift.example.com .
|
-
Опціонально:
Якщо ви бачите повідомлення зі змістом:
"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.
-
У hosted zone, до якої відноситься
DNS_WILDCARD
кластера, створіть TXT-записи, що вимагає certbot. При цьому, перед тим, як продовжувати (вводитиEnter
), перевірте, що запис створено і він актуальний, за допомогою виконання наступної команди в іншій, одночасно відкритій консолі:
nslookup -type=txt <dns_record>
![Перевірка створеного запису](../_images/certificates-update/certificates-update-2.png)
-
У випадку успішної видачі сертифікату, ви отримаєте відповідне повідомлення, в якому можна побачити шлях до файлів із ключем і ланцюжком сертифікатів:
![Успішне отримання сертифікату](../_images/certificates-update/certificates-update-3.png)
-
Видаліть старий
secret
роутера та API, виконавши наступні команди:
oc delete secret router-certs -n openshift-ingress oc delete secret router-certs -n openshift-config
-
Створіть новий
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
-
Видаліть поди роутера за допомогою наступної команди:
oc delete pods --all -n openshift-ingress