Lewati ke konten utama

mtls

Mengatur dan mengonfigurasi sertifikat mTLS untuk Platform OneEntry menggunakan token dan mTLS, serta menerapkan aplikasi di server dengan Nginx, Docker, dan GitLab

Bagian 1: Mengatur mTLS

Melindungi API

  1. Menggunakan Token: Hasilkan token di pengaturan OneEntry dan tambahkan ke header permintaan dengan parameter 'x-app-token', di mana nilainya adalah token.
  2. Menggunakan mTLS: Aktifkan opsi mTLS di dasbor OneEntry Anda dan hasilkan sertifikat di pengaturan OneEntry.

Mengatur sertifikat

  1. Di dasbor Anda, pergi ke tab 'Akses' dan beralih dari token ke mTLS.
  2. Hasilkan sertifikat baru di OneEntry ('Pengaturan' -> 'Sertifikat Aplikasi' -> 'Buat Sertifikat Baru').
  3. Unduh ke komputer Anda dan ekstrak ke folder 'cert' di root proyek Anda.

Mengatur lingkungan lokal (menggunakan ReactJS sebagai contoh)

  1. Unduh file setupProxy.js dan simpan di folder 'src'.
  2. Edit parameter 'target', dengan menentukan alamat proyek Anda.
  3. Instal paket 'http-proxy-middleware': 'npm install http-proxy-middleware'.
  4. Mulai aplikasi.

Bagian 2: Konfigurasi Server

Mempersiapkan Server

  1. Perbarui informasi repositori: apt update.
  2. Tambahkan repositori Docker dan instal paket: apt install nginx certbot docker-ce pwgen.

Konfigurasi UFW

  1. Blokir semua koneksi masuk: ufw default deny incoming.
  2. Izinkan semua koneksi keluar: ufw default allow outgoing.
  3. Izinkan koneksi TCP masuk di port 22, 80, dan 443: ufw allow 22,80,443/tcp.

Konfigurasi SSH

  1. Edit konfigurasi daemon SSH: nano /etc/ssh/sshd_config.
  2. Atur PasswordAuthentication no.
  3. Restart daemon SSH: systemctl restart ssh.

Konfigurasi Nginx

  1. Hapus file konfigurasi default: rm /etc/nginx/sites-available/default.
  2. Buat file konfigurasi baru: nano /etc/nginx/sites-available/my_app.
  3. Unduh dan edit konfigurasi Nginx dari OneEntry, mengganti "your_domain.com" dengan domain Anda.
  4. Kemudian jalankan perintah: ‘ln -s /etc/nginx/sites-available/my_app /etc/nginx/sites-enabled', mengganti "my_app" dengan nama file konfigurasi Anda.
  5. Terbitkan sertifikat SSL menggunakan Certbot: certbot certonly --webroot -w /var/www/html -d your_domain.
  6. Periksa pembaruan sertifikat otomatis: certbot renew --dry-run.
  7. Edit tugas cron Certbot untuk secara otomatis memuat ulang konfigurasi Nginx setelah penerbitan sertifikat: ‘nano /etc/cron.d/certbot', mengganti baris terakhir dengan: echo "0 */12 * * * root certbot -q renew && nginx -s reload" > /etc/cron.d/certbot.
  8. Hapus komentar pada baris di file konfigurasi 'nano /etc/nginx/sites-available/my_app' (di mana 'my_app' adalah nama file konfigurasi Anda).
  9. Periksa konfigurasi Nginx: nginx -t.
  10. Muat ulang Nginx setelah setiap perubahan: nginx -s reload.

Bagian 3: Menerapkan Aplikasi dengan GitLab dan GitHub

GitHub

Membuat pengguna baru untuk GitHub Runner

  1. Hasilkan kata sandi: 'pwgen -s 15 1'.
  2. Buat pengguna baru: 'useradd -m github-runner'.
  3. Atur kata sandi untuknya: 'passwd github-runner'.
  4. Tambahkan pengguna baru ke grup: 'usermod -aG docker github-runner' dan 'usermod -aG sudo github-runner'.
  5. Ubah shell untuk pengguna GitHub Runner: 'chsh -s /bin/bash github-runner'.
  6. Beralih ke pengguna baru: 'sudo su - gitlab-runner'.

Mengonfigurasi GitHub Runner

  1. Buat GitHub Runner: pergi ke pengaturan repositori Anda, klik 'Actions' dan pilih 'Runners', lalu klik 'New self-hosted runner'.
  2. Ikuti instruksi di blok 'Download' dan perintah pertama di blok 'Configure'.
  3. Tambahkan Runner ke autostart sistem: 'sudo ./svc.sh install'. Anda perlu memasukkan kata sandi yang dihasilkan sebelumnya.
  4. Mulai Runner: 'sudo ./svc.sh start'.
  5. Pergi ke bagian 'Actions', klik 'Runners', dan pastikan 'Runner' sedang berjalan.
  6. Kembali ke pengguna 'root'.
  7. Buat direktori kerja: 'mkdir -p /var/apps/frontend'.
  8. Atur izin untuk pengguna 'github-runner': 'chown -R github-runner:docker /var/apps/frontend'.

Mengonfigurasi variabel lingkungan di GitHub

  1. Buat variabel DOMAIN, MTLS_USER_CERT, dan MTLS_USER_KEY di repositori GitHub Anda ('Settings' -> 'Secrets and Variables').
  2. Hasilkan sertifikat di OneEntry, tambahkan sertifikat dan kunci ke variabel. Di variabel DOMAIN, tentukan alamat proyek Anda tanpa https.
  3. Unduh file docker-compose.yml dan dua arsip .github dan .docker.
  4. Letakkan docker-compose.yml, .github.zip, dan .docker.zip di folder root proyek Anda dan ekstrak arsip (Anda dapat menghapus arsip setelah ekstraksi).
  5. Jalankan perintah push di proyek Anda.
  6. Periksa proses di tab 'Actions'.
  7. Periksa aksesibilitas aplikasi di browser.
GitLab

Mendaftarkan GitLab Runner

  1. Tentukan tag 'docker, frontend'.
  2. Pergi ke 'Settings -> CI/CD -> Runners' dan klik tombol 'New project runner'.
  3. Masuk ke direktori yang dibuat: cd /var/apps/gitlab-runner.
  4. Jalankan perintah untuk memulai proses pendaftaran: docker compose run runner register.
  5. Masukkan URL GitLab, misalnya, https://gitlab.com/.
  6. Dapatkan token pendaftaran dari GitLab (di bagian 'Runners' proyek) dan tempelkan ke terminal.
  7. Tentukan executor sebagai 'docker'.
  8. Tentukan gambar default sebagai docker:20.10.16.

Mengatur variabel lingkungan di GitLab

  1. Buat variabel DOMAIN, MTLS_USER_CERT, dan MTLS_USER_KEY di repositori GitLab Anda ('Settings' -> 'CI/CD' -> 'Variables').
  2. Hasilkan sertifikat di OneEntry, tambahkan sertifikat dan kunci ke variabel, dan tentukan alamat proyek Anda tanpa https di variabel DOMAIN.
  3. Unduh file docker-compose.yml, .gitlab-ci.yml, dan arsip .docker, tempatkan file di root proyek Anda, dan ekstrak arsip (Anda dapat menghapus arsip setelah ekstraksi).

Mempersiapkan konfigurasi GitLab Runner (executor Docker)

  1. Buat direktori yang diperlukan: mkdir -p /var/apps/gitlab-runner/volumes/etc/gitlab-runner.
  2. Jalankan perintah: cat /var/apps/gitlab-runner/docker-compose.yaml version: '3' services: runner: image: 'gitlab/gitlab-runner:v16.2.0' restart: always container_name: 'gitlab-runner' privileged: true volumes: - './volumes/etc/gitlab-runner:/etc/gitlab-runner' - '/var/run/docker.sock:/var/run/docker.sock' EOT.

Konfigurasi GitLab Runner

  1. Edit file konfigurasi: nano volumes/etc/gitlab-runner/config.toml.
  2. Atur parameter privileged ke true untuk mengaktifkan Docker-in-Docker.
  3. Ubah nilai volumes menjadi ['/var/run/docker.sock:/var/run/docker.sock', '/cache'] agar Docker berfungsi dengan benar.
  4. Tambahkan user = 'gitlab-runner' di awal file untuk menjalankan Runner sebagai pengguna tersebut.
  5. Simpan perubahan dan keluar dari editor.
  6. Restart Runner: 'systemctl restart gitlab-runner'.

Mengaktifkan dan memverifikasi GitLab Runner

  1. Jalankan perintah docker compose up -d untuk memulai Runner.
  2. Pergi ke GitLab dan periksa bahwa Runner aktif dan berjalan (Anda harus melihat statusnya di bagian 'Runners' proyek).

Mengatur Runner tambahan di host (executor shell)

  1. Ikuti Instruksi untuk menginstal Runner tambahan yang berjalan langsung di host (tidak di Docker).
  2. Atur tag untuk Runner: 'shell, frontend'.

Izin Runner

  1. Tambahkan pengguna baru ke grup: 'usermod -aG docker gitlab-runner'.
  2. Jika Anda perlu mengubah pemilik dan grup untuk file atau direktori: 'chown -R gitlab-runner:docker /var/apps/frontend'.

Konfigurasi Akhir dan Pengujian

  1. Pastikan semua Runner dikonfigurasi dengan benar dan siap digunakan.
  2. Eksekusi perintah push di proyek Anda.
  3. Periksa kemajuan di 'Build' -> 'Pipelines'.
  4. Periksa ketersediaan aplikasi di browser.

Kesimpulan

Ikuti langkah-langkah ini untuk pengaturan dan penerapan aplikasi Anda yang sukses dengan OneEntry. Semoga sukses dengan pengembangan!