Apa yang bisa kami bantu?

A. Pendahuluan

Harbor adalah solusi registry image container open source kelas enterprise. Untuk menggunakan Harbor secara aman, koneksi ke registry wajib dienkripsi melalui HTTPS. Sertifikat SSL dari Let's Encrypt secara gratis bisa digunakan, baik diterapkan langsung pada Harbor atau melalui reverse proxy (umum menggunakan Nginx).


Panduan ini akan menjelaskan dua skenario instalasi SSL: langsung pada Harbor atau melalui reverse proxy Nginx. Username dan password admin juga akan dikonfigurasi.

B. Langkah-langkah

1. Prasyarat

  • Domain valid, misal: harbor.domainanda.com, yang sudah mengarah ke IP server.
  • Hak akses sudo/root.
  • Buka port 80 & 443 pada firewall.
  • Server berbasis Ubuntu 22.04 atau RHEL9/AlmaLinux9/RockyLinux9.

 

2. Instalasi Docker & Docker Compose

a. Ubuntu 22.04

sudo apt update sudo apt install docker.io docker-compose -y sudo systemctl enable --now docker
 

b. RHEL9/AlmaLinux9/Rocky9

sudo dnf install -y dnf-plugins-core sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin sudo systemctl enable --now docker
 

3. Download & Ekstrak Harbor

wget https://github.com/goharbor/harbor/releases/download/v2.0.0/harbor-offline-installer-v2.0.0.tgz
tar xzvf harbor-offline-installer-v2.0.0.tgz
cd harbor

 

4. Konfigurasi Username & Password Admin Harbor

Salin dan edit file konfigurasi:

cp harbor.yml.tmpl harbor.yml
nano harbor.yml
 
  • Temukan:
harbor_admin_password: Harbor12345

WAJIB: Ganti password admin sesuai kebijakan keamanan perusahaan Anda.

  • Username admin selalu: admin
  • Password admin: sesuai isian pada harbor_admin_password.

 

5. Pilihan Konfigurasi SSL

A. SSL Langsung pada Harbor

Dapatkan Sertifikat Let’s Encrypt dengan Certbot:

  • Berhentikan web server lain di port 80/443 sebelum generate!
  • Install dan jalankan certbot:
# Ubuntu
sudo apt install certbot -y
# RHEL/Alma/Rocky
sudo dnf install certbot -y
# Jalankan certbot
sudo certbot certonly --standalone -d harbor.domainanda.com

File hasil:

  • Certificate: /etc/letsencrypt/live/harbor.domainanda.com/fullchain.pem
  • Private key: /etc/letsencrypt/live/harbor.domainanda.com/privkey.pem

Set Konfigurasi SSL di harbor.yml:

hostname: harbor.domainanda.com
https:
 port: 443
 certificate: /etc/letsencrypt/live/harbor.domainanda.com/fullchain.pem
 private_key: /etc/letsencrypt/live/harbor.domainanda.com/privkey.pem
# Optional: disable HTTP
# http:
#   port: 80

 

B. SSL Melalui Reverse Proxy (Nginx)

Atur Harbor untuk listen di HTTP (misal port 8080):

hostname: harbor.domainanda.com
http:
 port: 8080
# https:
#   port: 443
#   certificate: ...
#   private_key: ...

 

Install Nginx:

  • Ubuntu: sudo apt install nginx -y
  • RHEL/Alma/Rocky: sudo dnf install nginx -y

Konfigurasi Nginx Reverse Proxy: Buat konfigurasi baru misal /etc/nginx/conf.d/harbor.conf:

server {
   listen 80;
   server_name harbor.domainanda.com;
   location / {
       proxy_pass http://127.0.0.1:8080/;
       proxy_set_header Host $host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
   }
}

 

Reload Nginx:

sudo nginx -t
sudo systemctl reload nginx

 

Request sertifikat SSL Let’s Encrypt via Certbot Nginx:

# Ubuntu
sudo apt install python3-certbot-nginx -y
# RHEL/Alma/Rocky
sudo dnf install python3-certbot-nginx -y
sudo certbot --nginx -d harbor.domainanda.com
  • Certbot akan mengupdate file Nginx agar HTTPS aktif.

6. Instalasi Harbor

sudo ./install.sh
  • Proses ini otomatis membuat & menjalankan container-container Harbor.

7. Akses & Pengaturan Awal

  • Buka browser: https://harbor.domainanda.com
  • Login menggunakan:
    • Username: admin
    • Password: sesuai yang diatur pada langkah 4.
  • Setelah login, segera ganti password jika diperlukan dan buat user/role lain sesuai kebutuhan.
Gambar 1.  Login Harbor

 

Gambar 2. Dashboard Harbor

8. Renewal Otomatis SSL Let’s Encrypt

SSL langsung di Harbor:
Renewal Let’s Encrypt perlu restart Harbor agar sertifikat baru aktif.
Contoh cron untuk renewal:

0 3 * * * root certbot renew --quiet --pre-hook "docker-compose -f /opt/harbor/docker-compose.yml down" --post-hook "docker-compose -f /opt/harbor/docker-compose.yml up -d"

 

Reverse proxy Nginx:
Renew otomatis, hanya reload Nginx (lebih seamless):

0 3 * * * root certbot renew --quiet --nginx

C. Penutup

Dengan mengikuti panduan ini, Anda telah berhasil menginstal Harbor sebagai registry private, mengamankan akses melalui SSL Let’s Encrypt beserta reverse proxy Nginx di Ubuntu 22.04 maupun RHEL9 (AlmaLinux/Rocky Linux 9). Konfigurasi ini memastikan keamanan dan kemudahan akses pengelolaan image Docker dalam lingkungan perusahaan maupun organisasi Anda dan untuk pengaturan user dan project lebih lanjut, silakan kunjungi dokumentasi resmi Harbor.

Semoga artikel ini dapat membantu Anda. Temukan bantuan lainnya melalui Knowledge Base Biznet Gio. Jika Anda masih memiliki kendala silakan hubungi Support Biznet GIO melalui email support@biznetgio.com atau live chat maupun WA ke website www.biznetgio.com dan bisa juga melalui telepon ke nomor (021) 5714567.