Programming
우분투 Harbor HTTPS 설정을 위한 인증서 생성
사랑우주인
2025. 4. 10. 21:01
Harbor HTTPS 설정을 위한 인증서 생성 과정
인증 기관(CA) 인증서 생성
테스트 환경이므로 외부 인증 기관 대신 자체 서명(Self-signed) 방식으로 CA 인증서를 생성한다.
CA 인증서(ca.crt)는 CA의 개인 키(ca.key)를 기반으로 발급한다.
# 인증서 디렉토리 생성
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.151.109" \
-key ca.key \
-out ca.crt
서버 인증서 생성
서버 인증서는 서버의 개인 키로 생성한 CSR(Certificate Signing Request)에 대해, CA가 서명함으로써 발급된다.
CSR에는 서버의 공개 키 및 IP/도메인 등의 정보가 포함되며, 해당 정보는 인증서의 소유 주체 식별에 사용된다.
# 1. 서버 인증서 개인 키 생성
openssl genrsa -out 192.168.151.109.key 4096
# 2. 서버 인증서 서명 요청(CSR) 생성 - IP 주소로 CN 변경
openssl req -sha512 -new \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=192.168.151.109" \
-key 192.168.151.109.key \
-out 192.168.151.109.csr
# 3. x509 v3 확장 설정 파일 생성 - DNS 대신 IP 사용
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
IP.1=192.168.151.109
EOF
# 4. CA로 서버 인증서 서명하기
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in 192.168.151.109.csr \
-out 192.168.151.109.crt
# 5. 인증서 형식 변환 (Nginx용)
openssl x509 -inform PEM -in 192.168.151.109.crt -out 192.168.151.109.cert
# 6. Harbor에서 사용할 인증서 디렉토리 생성 및 인증서 복사
sudo mkdir -p /etc/docker/certs.d/192.168.151.109
sudo cp 192.168.151.109.cert /etc/docker/certs.d/192.168.151.109/
sudo cp 192.168.151.109.key /etc/docker/certs.d/192.168.151.109/
sudo cp ca.crt /etc/docker/certs.d/192.168.151.109/
# 7. harbor.yml 파일 수정 필요
hostname: 192.168.151.109
https:
port: 443
certificate: /etc/docker/certs.d/192.168.151.109/192.168.151.109.cert
private_key: /etc/docker/certs.d/192.168.151.109/192.168.151.109.key
# 8. Harbor 재구성 및 재시작
cd ~/harbor
sudo ./prepare
sudo docker-compose down
sudo docker-compose up -d