Harbor не поставляется с сертификатами, по умолчанию он использует HTTP для обслуживания запросов к реестру. Однако для любой рабочей среды настоятельно рекомендуется включить безопасность. В Harbor есть экземпляр Nginx в качестве обратного прокси для всех сервисов. Вы можете использовать скрипт prepare для настройки Nginx и включения https.
Предположим, что имя хоста вашего реестра — reg.yourdomain.com, а его запись DNS указывает на хост, на котором вы запускаете Harbor. Сначала вам нужно получить сертификат от центра сертификации (ЦС). Сертификат обычно содержит файлы .crt и .key, например, yourdomain.com.crt и yourdomain.com.key.
В тестовой или разрабатываемой среде вы можете выбрать использование самозаверяющего сертификата вместо сертификата от ЦС. Приведённые ниже команды создают собственный сертификат:
openssl req \
-newkey rsa:4096 -nodes -sha256 -keyout ca.key \
-x509 -days 365 -out ca.crt
Если вы используете полное доменное имя (FQDN), такое как reg.yourdomain.com, для подключения к хосту реестра, то вы должны использовать reg.yourdomain.com в качестве CN (Common Name). В противном случае, если вы используете IP-адрес для подключения к хосту реестра, CN может быть любым именем или чем-то подобным:
openssl req \
-newkey rsa:4096 -nodes -sha256 -keyout yourdomain.com.key \
-out yourdomain.com.csr
Если вы используете FQDN, такое как reg.yourdomain.com, для подключения хоста реестра, запустите эту команду, чтобы сгенерировать сертификат хоста реестра:
openssl x509 -req -days 365 -in yourdomain.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out yourdomain.com.crt
Если вы используете IP, скажем 192.168.1.101, для подключения хоста реестра, вы можете вместо этого запустить следующую команду:
echo subjectAltName = IP:192.168.1.101 > extfile.cnf
openssl x509 -req -days 365 -in yourdomain.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out yourdomain.com
.crt
После получения файлов yourdomain.com.crt и yourdomain.com.key вы можете поместить их в каталог, такой как /root/cert/
:
cp yourdomain.com.crt /root/cert/
cp yourdomain.com.key /root/cert/
Затем отредактируйте файл make/harbor.cfg, обновите имя хоста и протокол, а также обновите атрибуты ssl_cert
и ssl_cert_key
:
#set hostname
hostname = reg.yourdomain.com
#set ui_url_protocol
ui_url_protocol = https
......
#The path of cert and key files for nginx, they are applied only the protocol is set to https
ssl_cert = /root/cert/yourdomain.com.crt
ssl_cert_key = /root/cert/yourdomain.com.key
Сгенерируйте конфигурационные файлы для Harbor:
./prepare
Если Harbor уже запущен, остановите и удалите существующий экземпляр. Ваши данные изображений остаются в файловой системе:
docker-compose down
Наконец, перезапустите Harbor:
docker-compose up -d
После настройки HTTPS для Harbor вы можете проверить это, выполнив следующие действия:
Откройте браузер и введите адрес: https://reg.yourdomain.com . Он должен отобразить пользовательский интерфейс Harbor.
На машине с демоном Docker убедитесь, что опция "-insecure-registry" отсутствует, и вы должны скопировать ca.crt, созданный на предыдущем шаге, в /etc/docker/certs.d/yourdomain.com (или IP вашего хоста реестра), если каталог не существует, создайте его. Если вы сопоставили порт 443 nginx с другим портом, вам следует вместо этого создать каталог /etc/docker/certs.d/yourdomain.com:port (или ваш хост реестра IP:порт). Затем выполните любую команду docker, чтобы проверить настройку, например:
docker login reg.yourdomain.com
Если вы сопоставили 443 порт nginx с другим, вам необходимо добавить порт для входа, как показано ниже:
docker login reg.yourdomain.com:port
Возможно, вы получите промежуточный сертификат от эмитента сертификатов. В этом случае вы должны объединить промежуточный сертификат со своим собственным сертификатом, чтобы создать Сертификатный пакет. Этого можно достичь с помощью следующей команды:
cat intermediate-certificate.pem >> yourdomain.com.crt
В некоторых системах, где работает демон Docker, может потребоваться доверять сертификату на уровне ОС.
Для Ubuntu это можно сделать с помощью следующих команд:
cp youdomain.com.crt /usr/local/share/ca-certificates/reg.yourdomain.com.crt
update-ca-certificates
А для Red Hat (CentOS и т. д.) команды такие:
cp yourdomain.com.crt /etc/pki/ca-trust/source/anchors/reg.yourdomain.com.crt
update-ca-trust
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )