- Вопрос или проблема
- Ответ или решение
- Решение проблемы с сертификатами при установке Kubernetes за корпоративным фаерволом Zscaler
- Проблема с сертификатами
- Шаги для решения проблемы
- 1. Импорт сертификата Zscaler
- 2. Проверка с помощью curl
- 3. Настройка apt для работы с Zscaler
- 4. Установка Kubernetes
- Заключение
Вопрос или проблема
Я пытаюсь установить Kubernetes на своей виртуальной машине с Ubuntu 24.04 LTS. При получении releaseKey я получаю сообщение об ошибке, что не удается получить сертификат локального удостоверяющего центра. Я нахожусь за корпоративным файрволом Zscaler.
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
Файл '/etc/apt/keyrings/kubernetes-apt-keyring.gpg' существует. Заменить? (y/N) curl: (60) Проблема с сертификатом SSL: не удается получить сертификат локального удостоверяющего центра
Подробности здесь: https://curl.se/docs/sslcerts.html
curl не смог подтвердить законность сервера и, следовательно, не смог
установить с ним безопасное соединение. Чтобы узнать больше об этой ситуации и
как ее исправить, пожалуйста, посетите упомянутую выше веб-страницу.
y
gpg: не найдено допустимых данных OpenPGP.
Теперь, если я делаю то же самое небезопасным способом, добавляя -k флаг
в вышеупомянутую команду, я могу получить releaseKey и подписать его, но при получении основных компонентов kubernetes я получаю следующую ошибку:
kubeadm config images pull
W1208 14:16:28.352329 25565 version.go:104] не удалось получить версию Kubernetes из интернета: не удается получить URL "https://dl.k8s.io/release/stable-1.txt": Get "https://dl.k8s.io/release/stable-1.txt": tls: не удалось проверить сертификат: x509: сертификат подписан неизвестным удостоверяющим центром
W1208 14:16:28.352504 25565 version.go:105] возвращение к локальной версии клиента: v1.30.7
не удалось получить образ "registry.k8s.io/kube-apiserver:v1.30.7": вывод: E1208 14:16:29.212801 25591 remote_image.go:180] "Получение изображения из сервиса изображений не удалося" err="rpc error: code = Unknown desc = не удалось получить и распаковать образ \"registry.k8s.io/kube-apiserver:v1.30.7\": не удалось разрешить ссылку \"registry.k8s.io/kube-apiserver:v1.30.7\": не удалось выполнить запрос: Head \"https://registry.k8s.io/v2/kube-apiserver/manifests/v1.30.7\": tls: не удалось проверить сертификат: x509: сертификат подписан неизвестным удостоверяющим центром" image="registry.k8s.io/kube-apiserver:v1.30.7"
time="2024-12-08T14:16:29Z" level=fatal msg="получение изображения: не удалось получить и распаковать образ \"registry.k8s.io/kube-apiserver:v1.30.7\": не удалось разрешить ссылку \"registry.k8s.io/kube-apiserver:v1.30.7\": не удалось выполнить запрос: Head \"https://registry.k8s.io/v2/kube-apiserver/manifests/v1.30.7\": tls: не удалось проверить сертификат: x509: сертификат подписан неизвестным удостоверяющим центром"
, error: exit status 1
Чтобы увидеть трассировку стека этой ошибки, выполните с --v=5 или выше
Что я уже попробовал?
Убедился, что утилита ca-certificates установлена:
apt install ca-certificates
Отключил проверку OCSP apt, что не рекомендуется
touch /etc/apt/apt.conf.d/99verify-peer.conf \
&& echo >>/etc/apt/apt.conf.d/99verify-peer.conf "Acquire { https::Verify-Peer false }"
Экспортировал сертификат zscaler с любого веб-сайта (нажав на замок и обычно в формате .pem) на свою виртуальную машину по пути /usr/local/share/ca-certificates/zscaler.crt
и затем выполнил команду update-ca-certificate
.
Ответ или решение
Решение проблемы с сертификатами при установке Kubernetes за корпоративным фаерволом Zscaler
Вы столкнулись с проблемой установки Kubernetes на Ubuntu 24.04 LTS из-за сертификата, подписанного неизвестным центром сертификации. Проблема возникает в результате использования корпоративного прокси-сервера Zscaler, который перехватывает HTTPS-трафик и подменяет сертификаты. Давайте разберем это подробнее и предложим пошаговое решение.
Проблема с сертификатами
Ошибка, с которой вы столкнулись, может быть вызвана несколькими факторами:
- SSL-сертификаты: При попытке загрузки ключа GPG и подтягивании образов Kubernetes ваше окружение не может проверить сертификаты из-за отсутствия корневого сертификата Zscaler в хранилище доверенных сертификатов вашей системы.
- Проблемы с OCSP: Вы также пытались отключить проверку OCSP, что не рекомендуется, так как это может открыть возможность для атак типа «человек посередине».
Шаги для решения проблемы
Следующие шаги помогут вам правильно настроить вашу систему для работы с Zscaler и Kubernetes.
1. Импорт сертификата Zscaler
Экспортируйте корневой и промежуточные сертификаты Zscaler с помощью браузера, загрузите их в вашей системе и добавьте в хранилище сертификатов Ubuntu:
-
Экспортируйте сертификат Zscaler:
- Откройте любой веб-сайт (например, https://google.com).
- Нажмите на значок замка в адресной строке и выберите "Подробнее" или "Информация о сертификате."
- Экспортируйте корневой сертификат Zscaler в формате
.pem
.
-
Скопируйте сертификат в систему:
sudo cp path/to/zscaler.crt /usr/local/share/ca-certificates/
-
Обновите хранилище сертификатов:
sudo update-ca-certificates
2. Проверка с помощью curl
После добавления сертификата Zscaler попробуйте выполнить команду curl
снова без флага -k
:
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
Убедитесь, что команда выполняется успешно и не выдает ошибку об SSL-сертификате.
3. Настройка apt для работы с Zscaler
Если вы по-прежнему сталкиваетесь с ошибками, попробуйте следующее:
-
Настройка APT для отключения проверки сертификатов (не рекомендуется в нормальных условиях):
echo "Acquire::https::Verify-Peer false;" | sudo tee /etc/apt/apt.conf.d/99verify-peer.conf
-
По возможности рекомендуется убрать эту настройку, как только графическая установка завершится.
4. Установка Kubernetes
Теперь, когда ваше окружение настроено, выполните следующие команды для установки Kubernetes:
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
После этого запустите команду для подтягивания образов:
kubeadm config images pull
Заключение
Проблема с сертификатами часто возникает в корпоративных сетях, использующих прокси-сервисы для мониторинга трафика. Следуя описанным шагам, вы сможете корректно настроить свою систему и установить Kubernetes. Если вы все еще сталкиваетесь с проблемами, возможно, потребуется обратиться в вашу службу поддержки, чтобы получить дополнительную информацию о конфигурации прокси-сервера Zscaler, используемом в вашей организации.
Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их. Удачи в установке!