Ana içeriğe geç
Versiyon: 2.7 (Güncel)

NGINX

SecTrail CM, NGINX web sunucularına ajansız bağlantı kurarak SSL sertifikalarının otomatik dağıtımını ve yenilenmesini sağlar. Hem Linux hem de Windows üzerinde çalışan NGINX sunucuları desteklenir:

Cihaz TipiPlatformBağlantı
NginxLinuxSSH
Nginx WindowsWindowsWinRM veya SSH (OpenSSH)

Bağlantı Gereksinimleri​

Linux​

GereksinimDetayAçıklama
ProtokolSSH (Secure Shell)Güvenli uzak bağlantı protokolü
Port22Standart SSH portu veya custom port
Kimlik DoğrulamaSSH Key veya PasswordSSH anahtarı veya şifre ile kimlik doğrulama
Kullanıcı YetkisiSınırlı sudo yetkisiBkz. Linux için En Az Yetkili Kullanıcı

Windows​

GereksinimDetayAçıklama
ProtokolWinRM veya SSH (OpenSSH)WinRM seçildiğinde önce PSRP denenir, olmazsa WinRM ile tekrar bağlanılır
Port5986 / 5985 (WinRM), 22 (SSH)Güvenli bağlantı için HTTPS portu (5986) önerilir
TransportNTLM / KerberosWindows kimlik doğrulama mekanizmaları
Kimlik DoğrulamaDomain hesabı veya lokal kullanıcıWindows kullanıcı kimlik bilgileri
Kullanıcı YetkisiUzak erişim + NTFS yetkileriBkz. Windows için En Az Yetkili Kullanıcı

Otomatik İşlemler​

SecTrail CM, NGINX üzerinde aşağıdaki işlemleri otomatik gerçekleştirir:

  1. Konfigürasyon Okuma: nginx -T ile tüm konfigürasyon okunur, SSL kullanan Server Block'lar ve sertifikaları listelenir
  2. Sertifika ve Key Yükleme: SSL sertifikası (chain ile birlikte) ve private key'in güvenli transferi
  3. Konfigürasyon Güncelleme: NGINX Server Block SSL direktiflerinin güncellenmesi (Linux, Generative dağıtım tipi)
  4. Konfigürasyon Testi: nginx -t ile sözdizimi kontrolü ve doğrulama
  5. Servis Yenileme: nginx -s reload ile NGINX'in kesintisiz yeniden yüklenmesi

Linux için En Az Yetkili Kullanıcı​

SecTrail CM kullanıcısına tam root yetkisi vermeniz gerekmez. Aşağıdaki iki adım yeterlidir.

1. sudo kuralı ekleyin (visudo -f /etc/sudoers.d/sectrail):

<user> ALL=(root) NOPASSWD: <nginx_binary> -T, <nginx_binary> -t, <nginx_binary> -s reload, /bin/cat <cert_dizini>/*

2. Sertifika dizinine yazma yetkisi verin:

setfacl -R -m u:<user>:rwx <cert_dizini>
  • <user>: Device Users'ta tanımladığınız kullanıcı
  • <nginx_binary>: NGINX binary dosyasının tam yolu (cihazın Custom Path alanıyla aynı olmalıdır)
  • <cert_dizini>: Sertifika ve key dosyalarının bulunduğu dizin

Örnek (kullanıcı sectrail, NGINX /usr/local/nginx/sbin/nginx, sertifikalar /etc/nginx/ssl):

sectrail ALL=(root) NOPASSWD: /usr/local/nginx/sbin/nginx -T, /usr/local/nginx/sbin/nginx -t, /usr/local/nginx/sbin/nginx -s reload, /bin/cat /etc/nginx/ssl/*
setfacl -R -m u:sectrail:rwx /etc/nginx/ssl

Windows için En Az Yetkili Kullanıcı​

Kullanıcıya aşağıdaki yetkileri verin:

  • WinRM ile bağlanılacaksa Remote Management Users grubu üyeliği
  • NGINX dizininde (nginx.exe dosyasının bulunduğu dizin) okuma ve çalıştırma
  • Sertifika dizininde ve NGINX'in logs ile temp dizinlerinde değiştirme (Modify)

Örnek (kullanıcı SECTRAIL\svc-sectrail, NGINX C:\nginx, sertifikalar C:\nginx\ssl):

Add-LocalGroupMember -Group "Remote Management Users" -Member "SECTRAIL\svc-sectrail"
icacls "C:\nginx" /grant "SECTRAIL\svc-sectrail:(OI)(CI)RX"
icacls "C:\nginx\ssl" /grant "SECTRAIL\svc-sectrail:(OI)(CI)M"
icacls "C:\nginx\logs" /grant "SECTRAIL\svc-sectrail:(OI)(CI)M"
icacls "C:\nginx\temp" /grant "SECTRAIL\svc-sectrail:(OI)(CI)M"
not

NGINX farklı bir hesapla (örn. LocalSystem altında servis olarak) çalışıyorsa, reload için kullanıcının yerel Administrators grubuna üye olması gerekir.

Yapılandırma Adımları​

1. NGINX Kullanıcısı Oluşturma​

Automation > Device Users bölümüne gidin ve NGINX sunucusuna bağlanacak kullanıcıyı oluşturun:

2. NGINX Cihazını SecTrail CM'e Ekleme​

Automation > Devices > Add New Device butonuna tıklayın ve aşağıdaki bilgileri girin:

NGINX Cihaz Ekleme

Linux​

  • Name: Cihaz için tanımlayıcı isim verin
  • Device Users: Adım 1'de oluşturduğunuz kullanıcıyı seçin
  • IP: NGINX sunucusunun IP adresini girin
  • Device Type: Açılır menüden Nginx seçin
  • Become Method: Yetki yükseltme yöntemini seçin (örn: sudo)
  • Custom Path: NGINX binary dosyasının tam yolunu girin (varsayılan: /usr/sbin/nginx). NGINX farklı bir dizine kuruluysa sunucudaki gerçek yolu yazın.
  • Deployment Type: Dağıtım tipini seçin (Generative veya Override)
  • Execution Server: Dağıtım işlemlerini yürütmek için kullanılacak sunucu

Windows​

  • Name: Cihaz için tanımlayıcı isim verin
  • Device Users: Adım 1'de oluşturduğunuz Windows kullanıcısını seçin
  • IP: NGINX sunucusunun IP adresini girin
  • Device Type: Açılır menüden Nginx Windows seçin
  • Connection: WinRM veya SSH seçeneklerinden birini seçin
  • Transport: NTLM veya Kerberos seçeneklerinden birini seçin (WinRM)
  • Connection Type: Güvenli bağlantı için Secure seçin (WinRM)
  • Port: WinRM portu (varsayılan: 5986 HTTPS veya 5985 HTTP)
  • Custom Path: nginx.exe dosyasının tam yolu (varsayılan: C:\nginx\nginx.exe). NGINX farklı bir dizine kuruluysa sunucudaki gerçek yolu yazın; NGINX'in prefix dizini bu yoldan belirlenir.
  • Deployment Type: Dağıtım tipini seçin
  • Execution Server: Dağıtım işlemlerini yürütmek için kullanılacak sunucu
Otomatik Keşif

NGINX cihazı SecTrail CM'e eklendikten sonra, cihazda tanımlı tüm Server Block'ların IP adresleri ve portları otomatik olarak keşif periyoduna dahil edilir ve düzenli olarak taranır.

3. Cihaz Bilgilerini Görüntüleme​

Cihaz eklendikten sonra Automation > Devices listesinde görüntülenecektir. Cihaz detaylarını görmek için satıra tıklayın:

NGINX Cihaz Detayları ve Server Block Listesi

  • Server Name: Server block server name (örn: sectrailcm-test.borsaistanbul.com)
  • Port: NGINX'in dinlediği portlar (örn: 8443)
  • Path: NGINX konfigürasyon dosyası yolu (örn: /etc/nginx/conf.d/domain_nginx.conf veya C:\nginx\conf\nginx.conf)
  • Server: SSL konfigürasyon detayları
  • Deploy: Sertifika dağıtımı için

Sertifika Dağıtımı​

Adım 1: Server Block ve Sertifika Seçimi​

  1. Automation > Devices bölümünden NGINX cihazınızı seçin
  2. Cihaz detaylarında, sertifika dağıtmak istediğiniz Server Block'u bulun
  3. İlgili satırdaki Deploy butonuna tıklayın
  4. Açılan Deploy Certificate penceresinde:
    • Virtual Servers: Hedef Server Block bilgisi görüntülenir (IP, port, server name)
    • Certificate: Açılır menüden dağıtmak istediğiniz sertifikayı seçin

Sertifika Dağıtım Ekranı

Adım 2: Dağıtım İşlemini Başlatma​

Deploy butonuna tıklayarak sertifika dağıtım işlemini başlatın.

Adım 3: İşlem Takibi​

Dağıtım işlemi Automation > Processes bölümünden takip edilebilir:

NGINX Dağıtım İşlemleri

İşlem Detayları​

Dağıtım sırasında aşağıdaki adımlar gerçekleştirilir:

Adımİşlem Açıklaması
1Mevcut sertifika ve key dosyaları (ve Linux Generative tipinde konfigürasyon dosyası) yedeklenir
2Sertifika (chain ile birlikte) ve key dosyaları sunucuya yüklenir
3Linux Generative tipinde Server Block'taki SSL direktifleri yeni dosyaları gösterecek şekilde güncellenir
4nginx -t ile konfigürasyon test edilir
5NGINX yeniden yüklenir (reload)
Windows'ta Dağıtım

Nginx Windows cihazlarında NGINX konfigürasyon dosyası değiştirilmez. Server Block'ta tanımlı ssl_certificate ve ssl_certificate_key dosyaları yedeklenir ve yeni sertifika ile key bu dosyaların üzerine yazılır. Bu nedenle konfigürasyon dosyası için yalnızca okuma yetkisi yeterlidir.

Geri Alma İşlemi​

Sertifika dağıtımı sonrasında sorun yaşanması durumunda Manual Rollback özelliği kullanılabilir.

Otomatik Geri Alma

Dağıtım işlemi sırasında herhangi bir adımda (örn. nginx -t testinin başarısız olması) hata oluşması durumunda, sistem otomatik olarak geri alma işlemini gerçekleştirir ve tüm değişiklikler geri alınır.

Geri Alma Adımları​

  1. Automation > Processes bölümüne gidin
  2. Geri almak istediğiniz işlemi bulun
  3. Status sütununda Manual-Rollback seçeneğini kullanın
  4. Onay verin

Geri Alma Sırasında Gerçekleşen İşlemler​

Adımİşlem
1Yeni konfigürasyon kaldırılır (Linux, Generative)
2Yedeklenen sertifika ve key dosyaları geri yüklenir
3Yeni yüklenen dosyalar ve yedek dosyaları silinir
4NGINX yeniden yüklenir (reload)