Micro Service Architecture/Harbor

[harbor] self-signed certificate (사설 인증서) 적용하기

ploz 2025. 2. 11. 15:48
반응형
참조 : [Harbor] 설치 및 LDAP 연동, 이미지 Push/Pull 해보기

 

Harbor 호스트 작업


Root CA(Certifocate Authority) 인증서 생성

CA 개인키 생성

openssl genrsa -out ca.key 4096

 

CA Public Key 생성

openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=KR/ST=Gyeonggi-do/O=Seongnam-si/OU=test/CN=harbor.test.com" \
-key ca.key \
-out ca.crt

 

Server 인증서 생성

Server 개인키 생성

openssl genrsa -out harbor.test.com.key 4096

 

Server CSR(인증서 서명 요청) 생성

openssl req -sha512 -new \
-subj "/C=KR/ST=Gyeonggi-do/L=Seongnam-si/O=test/OU=test team/CN=harbor.test.com" \
-key harbor.test.com.key \
-out harbor.test.com.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.1 = 172.16.10.101
DNS.1 = harbor.test.com
DNS.2 = harbor
EOF

 

Server Public 키 생성

openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in harbor.test.com.csr \
-out harbor.test.com.crt

 

Docker Client에서 사용할 cert 변환(crt -> cert)

openssl x509 -inform PEM -in harbor.test.com.crt -out harbor.test.com.cert

 

Harbor에 인증서 복사

mkdir /data/cert
cp -arf harbor.bside.com.crt harbor.bside.com.key ca.crt /data/cert/

 

harbor.yml 수정

https:
  # https port for harbor, default is 443
  port: 443
  # The path of cert and key files for nginx
  certificate: /data/cert/harbor.test.com.crt
  private_key: /data/cert/harbor.test.com.key

 

Harbor 재설치

Harbor 삭제

docker-compose down --rmi all
rm -rf docker-compose.yml

 

Harbor 설치

./prepare --with-trivy
./install.sh --with-trivy

 

Docker Client 설정


Docker Linux Client

Client에 필요한 인증서는 ca.crt, harbor.test.com.cert, harbor.test.com.key 총 3가지 이다.

해당 인증서를 Docker Client로 안전하게 가져온다

Docker Client 인증서 디렉토리 생성

mkdir -p /etc/docker/certs.d/harbor.test.com

 

인증서 복사

cp -arf ca.crt harbor.test.com.cert, arbor.test.com.key /etc/docker/certs.d/harbor.bside.com/

 

insecure-registries 설정이 있다면 삭제 해도 된다.

 

 

Docker 재시작

systemctl restart docker

 

Docker Desktop for Windows Client

Linux Client와 마찬가지로 ca.crt, harbor.test.com.cert, harbor.test.com.key 인증서를 안전하게 가져온다.

Root CA 인증서 설치

ca.crt 인증서를 설치한다.

 

인증서 디렉토리 생성

경로 : C:\사용자\.docker\certs.d\harbor.bside.com

 

해당 디렉토리에 ca.crt, harbor.test.com.cert, harbor.test.com.key 인증서를 복사한다.

 

Docker 재시작

 

insecure-registries 설정이 있다면 삭제 해도 된다.

 

 

참고 

설치된 인증서 삭제 하기

윈도우에서 "인증서"로 검색하고 "사용자 인증서"를 선택한다.

신뢰할수 있는 루트 인증기관 - 인증서 경로에 설치한 인증서를 삭제 할 수 있다.

반응형