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
- Menggunakan Token: Hasilkan token di pengaturan OneEntry dan tambahkan ke header permintaan dengan parameter 'x-app-token', di mana nilainya adalah token.
- Menggunakan mTLS: Aktifkan opsi mTLS di dasbor OneEntry Anda dan hasilkan sertifikat di pengaturan OneEntry.
Mengatur sertifikat
- Di dasbor Anda, pergi ke tab 'Akses' dan beralih dari token ke mTLS.
- Hasilkan sertifikat baru di OneEntry ('Pengaturan' -> 'Sertifikat Aplikasi' -> 'Buat Sertifikat Baru').
- Unduh ke komputer Anda dan ekstrak ke folder 'cert' di root proyek Anda.
Mengatur lingkungan lokal (menggunakan ReactJS sebagai contoh)
- Unduh file setupProxy.js dan simpan di folder 'src'.
- Edit parameter 'target', dengan menentukan alamat proyek Anda.
- Instal paket 'http-proxy-middleware': 'npm install http-proxy-middleware'.
- Mulai aplikasi.
Bagian 2: Konfigurasi Server
Mempersiapkan Server
- Perbarui informasi repositori:
apt update. - Tambahkan repositori Docker dan instal paket:
apt install nginx certbot docker-ce pwgen.
Konfigurasi UFW
- Blokir semua koneksi masuk:
ufw default deny incoming. - Izinkan semua koneksi keluar:
ufw default allow outgoing. - Izinkan koneksi TCP masuk di port 22, 80, dan 443:
ufw allow 22,80,443/tcp.
Konfigurasi SSH
- Edit konfigurasi daemon SSH:
nano /etc/ssh/sshd_config. - Atur
PasswordAuthentication no. - Restart daemon SSH:
systemctl restart ssh.
Konfigurasi Nginx
- Hapus file konfigurasi default:
rm /etc/nginx/sites-available/default. - Buat file konfigurasi baru:
nano /etc/nginx/sites-available/my_app. - Unduh dan edit konfigurasi Nginx dari OneEntry, mengganti "your_domain.com" dengan domain Anda.
- Kemudian jalankan perintah: ‘ln -s /etc/nginx/sites-available/my_app /etc/nginx/sites-enabled', mengganti "my_app" dengan nama file konfigurasi Anda.
- Terbitkan sertifikat SSL menggunakan Certbot:
certbot certonly --webroot -w /var/www/html -d your_domain. - Periksa pembaruan sertifikat otomatis:
certbot renew --dry-run. - 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. - Hapus komentar pada baris di file konfigurasi 'nano /etc/nginx/sites-available/my_app' (di mana 'my_app' adalah nama file konfigurasi Anda).
- Periksa konfigurasi Nginx:
nginx -t. - Muat ulang Nginx setelah setiap perubahan:
nginx -s reload.
Bagian 3: Menerapkan Aplikasi dengan GitLab dan GitHub
GitHub
Membuat pengguna baru untuk GitHub Runner
- Hasilkan kata sandi: 'pwgen -s 15 1'.
- Buat pengguna baru: 'useradd -m github-runner'.
- Atur kata sandi untuknya: 'passwd github-runner'.
- Tambahkan pengguna baru ke grup: 'usermod -aG docker github-runner' dan 'usermod -aG sudo github-runner'.
- Ubah shell untuk pengguna GitHub Runner: 'chsh -s /bin/bash github-runner'.
- Beralih ke pengguna baru: 'sudo su - gitlab-runner'.
Mengonfigurasi GitHub Runner
- Buat GitHub Runner: pergi ke pengaturan repositori Anda, klik 'Actions' dan pilih 'Runners', lalu klik 'New self-hosted runner'.
- Ikuti instruksi di blok 'Download' dan perintah pertama di blok 'Configure'.
- Tambahkan Runner ke autostart sistem: 'sudo ./svc.sh install'. Anda perlu memasukkan kata sandi yang dihasilkan sebelumnya.
- Mulai Runner: 'sudo ./svc.sh start'.
- Pergi ke bagian 'Actions', klik 'Runners', dan pastikan 'Runner' sedang berjalan.
- Kembali ke pengguna 'root'.
- Buat direktori kerja: 'mkdir -p /var/apps/frontend'.
- Atur izin untuk pengguna 'github-runner': 'chown -R github-runner:docker /var/apps/frontend'.
Mengonfigurasi variabel lingkungan di GitHub
- Buat variabel
DOMAIN,MTLS_USER_CERT, danMTLS_USER_KEYdi repositori GitHub Anda ('Settings' -> 'Secrets and Variables'). - Hasilkan sertifikat di OneEntry, tambahkan sertifikat dan kunci ke variabel. Di variabel
DOMAIN, tentukan alamat proyek Anda tanpa https. - Unduh file docker-compose.yml dan dua arsip .github dan .docker.
- Letakkan docker-compose.yml, .github.zip, dan .docker.zip di folder root proyek Anda dan ekstrak arsip (Anda dapat menghapus arsip setelah ekstraksi).
- Jalankan perintah push di proyek Anda.
- Periksa proses di tab 'Actions'.
- Periksa aksesibilitas aplikasi di browser.
GitLab
Mendaftarkan GitLab Runner
- Tentukan tag 'docker, frontend'.
- Pergi ke 'Settings -> CI/CD -> Runners' dan klik tombol 'New project runner'.
- Masuk ke direktori yang dibuat:
cd /var/apps/gitlab-runner. - Jalankan perintah untuk memulai proses pendaftaran:
docker compose run runner register. - Masukkan URL GitLab, misalnya, https://gitlab.com/.
- Dapatkan token pendaftaran dari GitLab (di bagian 'Runners' proyek) dan tempelkan ke terminal.
- Tentukan executor sebagai 'docker'.
- Tentukan gambar default sebagai docker:20.10.16.
Mengatur variabel lingkungan di GitLab
- Buat variabel
DOMAIN,MTLS_USER_CERT, danMTLS_USER_KEYdi repositori GitLab Anda ('Settings' -> 'CI/CD' -> 'Variables'). - Hasilkan sertifikat di OneEntry, tambahkan sertifikat dan kunci ke variabel, dan tentukan alamat proyek Anda tanpa https di variabel
DOMAIN. - 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)
- Buat direktori yang diperlukan:
mkdir -p /var/apps/gitlab-runner/volumes/etc/gitlab-runner. - 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
- Edit file konfigurasi:
nano volumes/etc/gitlab-runner/config.toml. - Atur parameter
privilegedketrueuntuk mengaktifkan Docker-in-Docker. - Ubah nilai
volumesmenjadi['/var/run/docker.sock:/var/run/docker.sock', '/cache']agar Docker berfungsi dengan benar. - Tambahkan
user = 'gitlab-runner'di awal file untuk menjalankan Runner sebagai pengguna tersebut. - Simpan perubahan dan keluar dari editor.
- Restart Runner: 'systemctl restart gitlab-runner'.
Mengaktifkan dan memverifikasi GitLab Runner
- Jalankan perintah
docker compose up -duntuk memulai Runner. - 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)
- Ikuti Instruksi untuk menginstal Runner tambahan yang berjalan langsung di host (tidak di Docker).
- Atur tag untuk Runner: 'shell, frontend'.
Izin Runner
- Tambahkan pengguna baru ke grup: 'usermod -aG docker gitlab-runner'.
- Jika Anda perlu mengubah pemilik dan grup untuk file atau direktori: 'chown -R gitlab-runner:docker /var/apps/frontend'.
Konfigurasi Akhir dan Pengujian
- Pastikan semua Runner dikonfigurasi dengan benar dan siap digunakan.
- Eksekusi perintah push di proyek Anda.
- Periksa kemajuan di 'Build' -> 'Pipelines'.
- Periksa ketersediaan aplikasi di browser.
Kesimpulan
Ikuti langkah-langkah ini untuk pengaturan dan penerapan aplikasi Anda yang sukses dengan OneEntry. Semoga sukses dengan pengembangan!