우분투 Harbor HTTPS 설정을 위한 인증서 생성

2025. 4. 10. 21:01·Programming

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

 

'Programming' 카테고리의 다른 글

Reflection  (0) 2025.04.28
macOS에서 Harbor 레지스트리 인증서 설정하기  (0) 2025.04.10
Layered Architecture  (0) 2025.01.07
'Programming' 카테고리의 다른 글
  • Reflection
  • macOS에서 Harbor 레지스트리 인증서 설정하기
  • Layered Architecture
사랑우주인
사랑우주인
  • 사랑우주인
    lovelyAlien
    사랑우주인
  • 전체
    오늘
    어제
  • 글쓰기
    관리
    • 분류 전체보기 (209)
      • Programming (4)
        • Spring (28)
        • Java (46)
        • JPA (2)
        • 디자인 패턴 (5)
        • 개발&아키텍처 (0)
      • Network (14)
      • OS (19)
      • Database (1)
      • Kubernetes (0)
      • Kafka (2)
      • Algorithm (49)
        • BaekJoon (1)
        • Programmers (19)
        • Algorithm (5)
        • Socar (2)
        • LeetCode (19)
      • Interview (2)
      • Issues (2)
      • DotJoin (1)
      • Git (4)
      • 독서 (3)
      • 끄적끄적 (1)
      • 외부활동 (26)
        • 항해플러스 (2)
        • JSCODE 네트워크 (19)
        • JSCODE 자바 (5)
      • SQL (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • GitHub
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    @JsonNaming
    algorithm
    트랜잭션
    Reorder List
    pacific atlantic water flow
    runner 기법
    fcfs
    rotting oranges
    추상화 클래스
    JSCode
    디자인 패턴
    LinkedList
    RR
    wildcards
    Generic
    Oauth2
    Climbing Stairs
    lower bounded wildcards
    socar
    AuthenticationSuccessHandler
    OS
    Thread
    제네릭
    minimum number of arrows to burst balloons
    Process
    준영속 엔티티
    BFS
    clone graph
    운영체제
    @JsonProperty
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.1
사랑우주인
우분투 Harbor HTTPS 설정을 위한 인증서 생성
상단으로

티스토리툴바