Nginx istemci sertifikası kimlik doğrulaması (client certificate authentication) nasıl yapılandırılır?

Nginx ve İstemci Sertifikası

Nginx, yüksek performanslı ve esnek bir web sunucusu olup, HTTPS protokolü üzerinden güvenli iletişim sağlamak için TLS/SSL sertifikalarını kullanır. İstemci sertifikası kimlik doğrulaması, istemcilerin sunucuya bağlandıklarında kimliklerini doğrulamak için dijital sertifikalar kullanmalarını sağlar. Bu yapılandırma, belirli bir güvenlik seviyesi gerektiren uygulamalar veya hizmetler için kritik öneme sahiptir.

Gereksinimler

Nginx’de istemci sertifikası kimlik doğrulaması için öncelikle aşağıdaki unsurların sağlanması gereklidir:

1. Nginx Kurulumu: Nginx’in güncel bir sürümünün kurulu olması gerekir.
2. SSL Sertifikası: Sunucu için geçerli TLS/SSL sertifikasına ihtiyaç vardır.
3. CA (Sertifika Otoritesi): İstemci sertifikalarının imzalanması için bir Sertifika Otoritesi veya kendi kendine imzalı bir CA gereklidir.
4. İstemci Sertifikası: Kullanıcılara dağıtılacak olan kimlik doğrulama amaçlı sertifikalar.

İstemci Sertifikası Oluşturma

Kendi CA’yi oluşturmak ve istemci sertifikası üretmek için aşağıdaki adımlar izlenebilir:

1. Private Key ve CA Sertifikası Oluşturma: Aşağıdaki komut, CA sertifikası ve özel anahtar oluşturur.
“`bash
openssl genrsa -out ca-key.pem 2048
openssl req -x509 -new -nodes -key ca-key.pem -sha256 -days 1024 -out ca-cert.pem
“`

2. İstemci için Özel Anahtar ve Sertifika İstek Oluşturma:
“`bash
openssl genrsa -out client-key.pem 2048
openssl req -new -key client-key.pem -out client-csr.pem
“`

3. İstemci Sertifikasını İmzalama:
“`bash
openssl x509 -req -in client-csr.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -days 500 -sha256
“`

Nginx Konfigürasyonu

Nginx yapılandırma dosyasında istemci sertifikası kimlik doğrulaması yapılandırılmalıdır. Aşağıda, bu yapılandırmanın nasıl yapılacağı adım adım açıklanmaktadır:

1. Yapılandırma Dosyasını Düzenleme: Nginx yapılandırma dosyası genellikle `/etc/nginx/nginx.conf` veya belirli bir site yapılandırma dosyasında (`/etc/nginx/sites-available/`) bulunur. İlgili dosya açılır ve aşağıdaki ayarlar eklenir:

“`nginx
server {
listen 443 ssl;
server_name example.com;

ssl_certificate /path/to/server-cert.pem;
ssl_certificate_key /path/to/server-key.pem;
ssl_trusted_certificate /path/to/ca-cert.pem;

ssl_client_certificate /path/to/ca-cert.pem;
ssl_verify_client on; İstemci sertifikasını zorunlu kılmak için

location / {
root /var/www/html;
index index.html index.htm;
}
}
“`

Burada `ssl_client_certificate`, istemci sertifikalarının doğrulanması için gerekli yetkili CA sertifikasının yolunu belirtir. `ssl_verify_client` direktifi ise istemci sertifikasının doğrulanma zorunluluğunu ayarlar. `on` değeri, istemci sertifikasının zorunlu olduğu anlamına gelirken, `optional` değeri istemci sertifikasını isteğe bağlı kılar.

Nginx’i Yeniden Başlatma

Yapılandırma dosyasındaki değişikliklerin etkin olması için Nginx hizmeti yeniden başlatılmalıdır. Bu işlem için aşağıdaki komutlar kullanılabilir:

“`bash
sudo nginx -t Yapılandırma dosyasını test et
sudo systemctl reload nginx Nginx’i yeniden başlat
“`

İstemci Tarafında Sertifika Kurulumu

Web istemcisi, sunucuya bağlanırken ya da tarayıcı üzerinde bu kimlik doğrulamasını gerçekleştirmek için, istemci sertifikasını uygun bir biçimde yüklemelidir. Tarayıcı veya istemci uygulaması üzerinden istemci sertifikası eklenerek bağlantılar yapılabilir. Örneğin, Chrome tarayıcısında Ayarlar → Gizlilik ve güvenlik → Güvenlik → Sertifika yönetimi bölümünden istemci sertifikası yüklenebilir.

Erişim Testi

Konfigürasyon tamamlandıktan sonra, güvenli bir HTTPS bağlantısı kurarak istemci sertifikası ile erişim testi yapılmalıdır. HTTP istekleri, istemci sertifikası sunulmadan gerçekleştirildiğinde, isteğin reddedilmesi beklenmektedir. Ayrıca, doğru istemci sertifikası ile yapılan isteklerde başarılı yanıt alınmalıdır.

Güvenlik Önlemleri

İstemci sertifikası kimlik doğrulaması yapılandırıldığında, yapılandırmanın güvenliğini artırmak için çeşitli önlemler almak gereklidir. Bu önlemler şunlardır:

– Sertifika sürelerinin düzenli kontrolü ve güncellenmesi.
– Sertifika iptal listelerinin kullanımı.
– HTTPS için güçlü şifreleme protokollerinin tercih edilmesi.
– Nginx’in güncel sürümde tutulması.

Bu yapılandırma ile Nginx, istemci sertifikası kimlik doğrulaması ile güvenli bir bağlantı sunmakta ve yalnızca yetkili kullanıcıların erişimine izin vermektedir.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

SON İÇERİKLER

İLGİNİZİ ÇEKEBİLİR