Docker & Kubernetes/도커 / / 2024. 1. 10. 16:14

Ubuntu에 Harbor 설치 및 https 연결(MacOS)

반응형

 

0. 설치 전 환경 설정

https://goharbor.io/docs/2.10.0/install-config/installation-prereqs/

 

Harbor – Harbor Installation Prerequisites

Harbor Installation Prerequisites

goharbor.io

 

 

설치 당시 하드웨어, 소프트웨어, 네트워크 포트 조건

 

 

 

 

 

 

위 조건을 참고해서 만든 VM 환경은 다음과 같다:

OS: ubuntu 20.04

Hardware: 2 CPU 4G

Software: docker v24.0.7, docker-compose  v1.25.0

public IP: 192.168.77.163

private IP: 10.10.20.145

 

 

docker와 docker-compose 설치 방법:

#업데이트
sudo apt-get update

#docker
sudo apt-get install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker

#docker-compose
sudo apt-get install -y docker-compose

#설치 확인
sudo systemctl status docker
docker-compose --version

 

 

 

1. 파일 다운로드 및 압축풀기

https://github.com/goharbor/harbor/releases

 

Releases · goharbor/harbor

An open source trusted cloud native registry project that stores, signs, and scans content. - goharbor/harbor

github.com

 

최신 버전 링크 주소를 복사해서 다운로드 및 압축풀기

 

 

 

# 다운로드
wget https://github.com/goharbor/harbor/releases/download/v2.10.0/harbor-offline-installer-v2.10.0.tgz

#압축풀기: 공식문서에서는 szvf 옵션을 사용하지만, 오류가 발생해서 xvf 옵션 사용
tar xvf harbor-offline-installer-v2.10.0.tgz

 

 

 

2. 인증 기관 인증서 생성

https://goharbor.io/docs/2.10.0/install-config/configure-https/

 

Harbor – Configure HTTPS Access to Harbor

Configure HTTPS Access to Harbor

goharbor.io

 

#인증서 디렉토리 생성
mkdir ~/cert
cd ~/cert

#CA 인증서 개인 키 생성
openssl genrsa -out ca.key 4096

#CA 인증서 생성: CN에 harbor를 설치할 서버의 IP주소 입력
openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=192.168.77.163" \
 -key ca.key \
 -out ca.crt

 

3. 서버 인증서 생성

#개인키 생성
openssl genrsa -out 192.168.77.163.key 4096

#인증서 서명 요청(CSR)을 생성
openssl req -sha512 -new \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=192.168.77.163" \
    -key 192.168.77.163.key \
    -out 192.168.77.163.csr
    
#x509 v3 확장 파일을 생성
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
IP=192.168.77.163
EOF

#Harbor 호스트에 대한 인증서 생성
openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in 192.168.77.163.csr \
    -out 192.168.77.163.crt

 

 

4. Harbor 및 Docker에 인증서 제공

#/data/cert/ 폴더 생성
sudo mkdir -p /data/cert

#서버 인증서와 키를 Harbor 호스트의 인증서 폴더에 복사
sudo cp 192.168.77.163.crt /data/cert/
sudo cp 192.168.77.163.key /data/cert/

# Docker에서 사용할 수 있도록 crt을 cert로 변환
openssl x509 -inform PEM -in 192.168.77.163.crt -out 192.168.77.163.cert

#Docker 인증서 폴더 생성
sudo mkdir -p /etc/docker/certs.d/192.168.77.163/

#서버 인증서, 키 및 CA 파일을 Harbor 호스트의 Docker 인증서 폴더에 복사
sudo cp 192.168.77.163.cert /etc/docker/certs.d/192.168.77.163/
sudo cp 192.168.77.163.key /etc/docker/certs.d/192.168.77.163/
sudo cp ca.crt /etc/docker/certs.d/192.168.77.163/

#Docker 엔진 다시 시작
sudo systemctl restart docker

 

 

5. Harbor 배포 및 재구성

파일 수정

#harbor 폴더로 이동
cd ~/harbor

# harbor.yml.tmpl 파일을 harbor.yml로 수정 후 파일 진입
mv harbor.yml.tmpl harbor.yml
vi harbor.yml

 

5번, 17번, 18번 내용 아래와 같이 수정

 

 

  certificate: /etc/docker/certs.d/192.168.77.163/192.168.77.163.cert
  private_key: /etc/docker/certs.d/192.168.77.163/192.168.77.163.key

 

 

 

 

36번에 harbor admin 로그인 비밀번호가 있으니 이후 로그인 할 때 참고.

 

 

 

 

설치

 

sudo ./prepare
sudo ./install.sh

 

 

6. 접속

IP 주소로 접속(192.168.77.163)해보면 NET::ERR_CERT_AUTHORITY_INVALID 에러가 뜬다.

 

접속한 웹사이트의 SSL/TLS 인증서가 신뢰할 수 있는 인증 기관(CA)에서 발급한 것이 아닌 경우에 발생하는데,

 

자체 서명된 인증서라 로컬에 인증서를 등록해야 https 연결이 가능하다(로컬에서만 연결됨).

 

 

주의요함 > 인증서가 올바르지 않음 > 세부정보 > 내보내기

 

 

다운로드 받은 인증서를 열어서 등록한 후, 신뢰 > 항상 신뢰 로 설정

 

 

 

 

 

결과:

 

 

 

 

 

 

 

 

 

반응형

'Docker & Kubernetes > 도커' 카테고리의 다른 글

Docker 설치(ubuntu)  (0) 2023.05.31
Dockerfile build, Docker Hub에 푸시하는 방법  (0) 2023.05.25
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유