Обновление сертификатов API для OpenShift
-
Когда срок действия сертификатов API истекает (это отслеживается в Zabbix)
Обзор
Сертификаты API предоставляются LetsEncrypt через DNS-вызов. Поэтому процесс заключается в следующем: - использовать certbot для генерации вызова - зафиксировать соответствующую DNS-запись - получить сертификат - загрузить в OCP
Примечания:
- При работе со стендовым кластером заменяйте api.ocp на api.ocp.stg по мере необходимости
Шаги
-
На любой машине (даже на вашем ноутбуке) установите и запустите
certbotsudo dnf install certbot #если требуется mkdir ~/certbot && cd ~/certbot #если требуется certbot certonly --expand --keep --manual \ --preferred-challenges=dns -d "api.ocp.fedoraproject.org" \ --config-dir ./config \ --work-dir ./config \ --logs-dir ./logs
Это сгенерирует DNS-вызов, который необходимо зафиксировать как TXT-запись.
-
Следуйте процессу DNS для нового хоста/записи
Запись будет для
_acme-challenge.api.ocp.fedoraproject.org, и вы можете использоватьgit log/git blameдля поиска предыдущих примеров.Дайте 20 минут на распространение или используйте плейбук
update_dns.yml, как указано в процессе DNS, чтобы ускорить его. Вы можете проверить это с помощьюdig -t TXT _acme-challenge.api.ocp.fedoraproject.orgи убедиться, что возвращается правильная строка. -
Завершите процесс
certbotВернитесь к процессу
certbotи нажмите Enter, чтобы сообщитьcertbotо завершении вызова. Он должен пройти и записать файлы в./config/live/api.ocp.fedoraproject.org -
Скопируйте файлы на управляющий узел OpenShift
DATE=$(date '+%Y-%m-%d') scp ./config/live/api.ocp.fedoraproject.org/privkey.pem os-control01.rdu3.fedoraproject.org:/tmp/api.ocp.fedoraproject.org.key-$DATE scp ./config/live/api.ocp.fedoraproject.org/fullchain.pem os-control01.rdu3.fedoraproject.org:/tmp/api.ocp.fedoraproject.org.cert-$DATE
При необходимости измените имя хоста на
.stg.rdu3. -
Войдите на os-control01.rdu3.fedoraproject.org (или в стенд, при необходимости)
ssh os-control01.rdu3.fedoraproject.org sudo -i DATE=$(date '+%Y-%m-%d') mv /tmp/api.ocp.fedoraproject.org.key-$DATE /tmp/api.ocp.fedoraproject.org.cert-$DATE /root
-
Удалите и замените секрет сертификата в OpenShift
oc delete secret api.ocp.fedoraproject.org -n openshift-config sleep 3 DATE=$(date '+%Y-%m-%d') oc create secret tls api.ocp.fedoraproject.org \ --cert=api.ocp.fedoraproject.org.cert-$DATE \ --key=api.ocp.fedoraproject.org.key-$DATE \ -n openshift-config
-
Подождите несколько минут, а затем проверьте сертификат API
Вы можете проверить сертификат, проверив конечную точку API или используя команды CLI OpenShift.
Want to help? Learn how to contribute to Fedora Docs ›