Ana içeriğe geç

mtls

CRITICAL MDX RULE — JSX attribute quoting. Inside a JSX tag every attribute value MUST be wrapped in double quotes (attr="value"), never in single quotes, even if the original used single quotes. Translated prose frequently contains apostrophes (French "d'acceder", "l'entite"; Italian "dell'utente"), and an apostrophe inside a single-quoted attribute breaks MDX compilation. If an attribute value itself contains a double-quote character, replace that character with the HTML entity ". Never rename attributes and never alter the tag structure: --- sidebar_position: 3

Tokenlar ve mTLS kullanarak Platform OneEntry için mTLS sertifikasını ayarlama ve yapılandırma, ayrıca uygulamayı Nginx, Docker ve GitLab ile bir sunucuya dağıtma

Bölüm 1: mTLS Ayarlama

API'yi Koruma

  1. Token Kullanarak: OneEntry ayarlarında bir token oluşturun ve bunu 'x-app-token' parametresi ile istek başlıklarına ekleyin, burada değer token'dır.
  2. mTLS Kullanarak: OneEntry kontrol panelinizde mTLS seçeneğini etkinleştirin ve OneEntry ayarlarında sertifikayı oluşturun.

Sertifikayı Ayarlama

bilgi

'mTLS' projesi için etkinleştirildiğinde OneEntry ayarlarında 'Uygulama Sertifikaları' sekmesi görünür. mTLS kapalıyken, ayarlar 'Uygulama tokenları' sekmesini gösterir.

  1. Kontrol panelinizde 'Erişim' sekmesine gidin ve token'dan mTLS'ye geçin.
  2. OneEntry'de yeni bir sertifika oluşturun: 'Ayarlar' -> 'Uygulama Sertifikaları'na gidin, 'Uygulama adı' alanına ismi girin ve 'Oluştur' butonuna tıklayın.
  3. Sertifikayı bilgisayarınıza indirin ve projenizin kökündeki 'cert' klasörüne çıkarın.

Yerel Ortamı Ayarlama (ReactJS örneği kullanarak)

  1. setupProxy.js dosyasını indirin ve 'src' klasörüne kaydedin.
  2. 'target' parametresini düzenleyin, projenizin adresini belirtin.
  3. 'http-proxy-middleware' paketini yükleyin: 'npm install http-proxy-middleware'.
  4. Uygulamayı başlatın.

Bölüm 2: Sunucu Yapılandırması

Sunucuyu Hazırlama

  1. Depo bilgilerini güncelleyin: `apt update`.
  2. Docker deposunu ekleyin ve paketleri yükleyin: `apt install nginx certbot docker-ce pwgen`.

UFW Yapılandırması

  1. Tüm gelen bağlantıları engelleyin: `ufw default deny incoming`.
  2. Tüm giden bağlantılara izin verin: `ufw default allow outgoing`.
  3. 22, 80 ve 443 numaralı portlarda gelen TCP bağlantılarına izin verin: `ufw allow 22,80,443/tcp`.

SSH Yapılandırması

  1. SSH daemon yapılandırmasını düzenleyin: `nano /etc/ssh/sshd_config`.
  2. `PasswordAuthentication no` ayarını yapın.
  3. SSH daemon'u yeniden başlatın: `systemctl restart ssh`.

Nginx Yapılandırması

  1. Varsayılan yapılandırma dosyasını kaldırın: `rm /etc/nginx/sites-available/default`
  2. Yeni bir yapılandırma dosyası oluşturun: `nano /etc/nginx/sites-available/my_app`.
  3. OneEntry'den Nginx yapılandırmasını indirin ve "your_domain.com" kısmını kendi alan adınızla değiştirin.
  4. Ardından şu komutu çalıştırın: ‘ln -s /etc/nginx/sites-available/my_app /etc/nginx/sites-enabled', "my_app" kısmını yapılandırma dosyanızın adıyla değiştirin.
  5. Certbot kullanarak SSL sertifikaları oluşturun: `certbot certonly --webroot -w /var/www/html -d your_domain`
  6. Otomatik sertifika yenilemesini kontrol edin: `certbot renew --dry-run`.
  7. Sertifikalar verildikten sonra Nginx yapılandırmasını otomatik olarak yeniden yüklemek için Certbot cron görevini düzenleyin: ‘nano /etc/cron.d/certbot', son satırı şu şekilde değiştirin: `echo "0 */12 * * * root certbot -q renew && nginx -s reload" > /etc/cron.d/certbot`
  8. 'nano /etc/nginx/sites-available/my_app' yapılandırma dosyasındaki satırları yorumdan çıkarın (burada 'my_app' yapılandırma dosyanızın adıdır).
  9. Nginx yapılandırmasını kontrol edin: `nginx -t`
  10. Her değişiklikten sonra Nginx'i yeniden yükleyin: `nginx -s reload`.

Bölüm 3: Uygulamayı GitLab ve GitHub ile Dağıtma

GitHub

GitHub Runner için yeni bir kullanıcı oluşturma

  1. Bir şifre oluşturun: 'pwgen -s 15 1'
  2. Yeni bir kullanıcı oluşturun: 'useradd -m github-runner'
  3. Bunun için bir şifre belirleyin: 'passwd github-runner'
  4. Yeni kullanıcıyı gruplara ekleyin: 'usermod -aG docker github-runner' ve 'usermod -aG sudo github-runner'.
  5. GitHub Runner kullanıcısının shell'ini değiştirin: 'chsh -s /bin/bash github-runner'
  6. Yeni kullanıcıya geçin: 'sudo su - gitlab-runner'.

GitHub Runner'ı Yapılandırma

  1. Bir GitHub Runner oluşturun: depo ayarlarınıza gidin, 'Actions' sekmesine tıklayın ve 'Runners'ı seçin, ardından 'Yeni kendi barındırdığınız runner' butonuna tıklayın.
  2. 'İndir' bloğundaki talimatları ve 'Yapılandır' bloğundaki ilk komutu izleyin.
  3. Runner'ı sistem başlangıcına ekleyin: 'sudo ./svc.sh install'. Önceden oluşturduğunuz şifreyi girmeniz gerekecek.
  4. Runner'ı başlatın: 'sudo ./svc.sh start'.
  5. 'Actions' bölümüne gidin, 'Runners'ı tıklayın ve 'Runner'ın çalıştığından emin olun.
  6. 'root' kullanıcısına geri dönün.
  7. Çalışma dizini oluşturun: 'mkdir -p /var/apps/frontend'
  8. 'github-runner' kullanıcısı için izinleri ayarlayın: 'chown -R github-runner:docker /var/apps/frontend'.

GitHub'da ortam değişkenlerini yapılandırma

  1. GitHub deponuzda `DOMAIN`, `MTLS_USER_CERT` ve `MTLS_USER_KEY` değişkenlerini oluşturun ('Ayarlar' -> 'Gizli ve Değişkenler').
  2. OneEntry'de bir sertifika oluşturun, sertifika ve anahtarı değişkenlere ekleyin. `DOMAIN` değişkeninde, projenizin adresini https olmadan belirtin.
  3. docker-compose.yml dosyasını ve iki arşivi .github ve .docker indirin.
  4. docker-compose.yml, .github.zip ve .docker.zip dosyalarını projenizin kök klasörüne koyun ve arşivleri çıkarın (çıkarma işleminden sonra arşivleri silebilirsiniz).
  5. Projenizde push komutunu çalıştırın.
  6. 'Actions' sekmesinde süreci kontrol edin.
  7. Uygulamanın tarayıcıda erişilebilirliğini kontrol edin.
GitLab

GitLab Runner'ı kaydetme

  1. 'docker, frontend' etiketlerini belirtin.
  2. 'Ayarlar -> CI/CD -> Runners' bölümüne gidin ve 'Yeni proje runner' butonuna tıklayın.
  3. Oluşturulan dizine gidin: `cd /var/apps/gitlab-runner`.
  4. Kayıt sürecini başlatmak için komutu çalıştırın: `docker compose run runner register`.
  5. GitLab URL'sini girin, örneğin, https://gitlab.com/.
  6. GitLab'dan kayıt token'ını alın (projenin 'Runners' bölümünde) ve terminale yapıştırın.
  7. Yürütücüyü 'docker' olarak belirtin.
  8. Varsayılan görüntüyü docker:20.10.16 olarak belirtin.

GitLab'da ortam değişkenlerini ayarlama

  1. GitLab deponuzda `DOMAIN`, `MTLS_USER_CERT` ve `MTLS_USER_KEY` değişkenlerini oluşturun ('Ayarlar' -> 'CI/CD' -> 'Değişkenler').
  2. OneEntry'de bir sertifika oluşturun, sertifika ve anahtarı değişkenlere ekleyin ve `DOMAIN` değişkeninde projenizin adresini https olmadan belirtin.
  3. docker-compose.yml, .gitlab-ci.yml dosyalarını ve .docker arşivini indirin, dosyaları projenizin köküne yerleştirin ve arşivleri çıkarın (çıkarma işleminden sonra arşivleri silebilirsiniz).

GitLab Runner (Docker yürütücüsü) yapılandırmasını hazırlama

  1. Gerekli dizinleri oluşturun: `mkdir -p /var/apps/gitlab-runner/volumes/etc/gitlab-runner`
  2. Komutu çalıştırın: `cat \ /var/apps/gitlab-runner/docker-compose.yamlversion: '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`

GitLab Runner Yapılandırması

  1. Yapılandırma dosyasını düzenleyin: `nano volumes/etc/gitlab-runner/config.toml`.
  2. Docker-in-Docker'ı etkinleştirmek için `priviledged` parametresini `true` olarak ayarlayın.
  3. Docker'ın doğru çalışması için `volumes` değerini `['/var/run/docker.sock:/var/run/docker.sock', '/cache']` olarak değiştirin.
  4. Dosyanın başına `user = 'gitlab-runner'` ekleyin, böylece Runner bu kullanıcı olarak çalışır.
  5. Değişiklikleri kaydedin ve editörden çıkın.
  6. Runner'ı yeniden başlatın: 'systemctl restart gitlab-runner'.

GitLab Runner'ı etkinleştirme ve doğrulama

  1. Runner'ı başlatmak için `docker compose up -d` komutunu çalıştırın.
  2. GitLab'a gidin ve Runner'ın aktif ve çalışır durumda olduğunu kontrol edin (projenin 'Runners' bölümünde durumunu görmelisiniz).

Ana makinede ek bir Runner ayarlama (shell yürütücüsü)

  1. Talimatları izleyerek doğrudan ana makinede (Docker'da değil) çalışan ek bir Runner kurun.
  2. Runner için etiketleri ayarlayın: 'shell, frontend'.

Runner İzinleri

  1. Yeni bir kullanıcıyı gruba ekleyin: 'usermod -aG docker gitlab-runner'
  2. Bir dosya veya dizinin sahibi ve gruplarını değiştirmek gerekiyorsa: 'chown -R gitlab-runner:docker /var/apps/frontend'

Son Yapılandırma ve Test

  1. Tüm Runner'ların düzgün yapılandırıldığından ve kullanıma hazır olduğundan emin olun.
  2. Projenizde push komutunu çalıştırın.
  3. 'Build' -> 'Pipelines' bölümünde ilerlemeyi kontrol edin.
  4. Uygulamanın tarayıcıda erişilebilirliğini kontrol edin.

Sonuç

OneEntry ile uygulamanızın başarılı bir şekilde kurulumu ve dağıtımı için bu adımları izleyin. Geliştirmede başarılar dileriz!