Nginx SSL/TLS konfigürasyonu nasıl yapılır? (HTTPS etkinleştirme)

Nginx Nedir?

Nginx, yüksek performanslı bir web sunucusu ve ters proxy sunucusu olarak bilinir. Yüksek trafikli web siteleri için tercih edilen bir çözüm sunar ve hem statik hem de dinamik içeriklerin sunumunda etkilidir. Ayrıca, proxy, yük dengeleme ve HTTP önbellekleme gibi ek özelliklere sahiptir.

SSL/TLS Nedir?

SSL (Secure Sockets Layer) ve TLS (Transport Layer Security), internet üzerinden veri transferi sırasında güvenliğin sağlanmasına yönelik protokollerdir. Bu protokoller, veri transferi sırasında gizliliği ve bütünlüğü sağlamak için şifreleme yöntemleri kullanır. Günümüzde HTTPS olarak bilinen güvenli HTTP protokolü, bu iki protokol üzerinden işlem yapar.

SSL Sertifikası Seçimi

HTTPS etkinleştirmek için öncelikle bir SSL sertifikasına ihtiyaç vardır. SSL sertifikası, bir web sitesinin kimliğini doğrulamak ve kullanıcı ile sunucu arasındaki iletişimi şifrelemek için kullanılır. Sertifikalar, genellikle bir sertifika otoritesinden (CA) satın alınır. Let’s Encrypt gibi bazı ücretsiz sertifika otoriteleri de mevcuttur. Sertifika almak için sunucu ve alan adı bilgileri gerekli olacaktır.

Sertifikanın Kurulumu

SSL sertifikası aldıktan sonra, sertifika dosyaları ve anahtar dosyaları sunucuya yüklenmelidir. Genellikle bu dosyalar `.crt` ve `.key` uzantılı olacaktır. Sertifika dosyası, genellikle alan adı, şirket bilgileri ve sertifika otoritesi bilgilerini içerirken, anahtar dosyası sunucuya özel bir anahtardır. Bu dosyalar genellikle `/etc/ssl/` veya `/etc/nginx/ssl/` gibi dizinlerde saklanabilir.

Nginx Konfigürasyon Dosyasının Düzenlenmesi

Nginx konfigürasyon dosyası tipik olarak `/etc/nginx/nginx.conf` veya alan adlarına özel konfigürasyon dosyalarında bulunur: `/etc/nginx/sites-available/`. HTTPS etkinleştirmek için bu dosyaların uygun bir şekilde düzenlenmesi gerekir.

“`nginx
server {
listen 80;
server_name example.com www.example.com;

return 301 https://$host$request_uri;
}
“`

Bu yapılandırma, HTTP üzerinden gelen talepleri otomatik olarak HTTPS’ye yönlendirecektir. Bu sayede, kullanıcının güvenli olmayan bağlantılardan kaçınması sağlanır.

HTTPS İçin Nginx Konfigürasyonu

HTTPS ayarlarını yapmak için yeni bir `server` bloğu oluşturulmalıdır. Bu blok içinde sertifika ve anahtar dosyalarının yolları belirtilmelidir.

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

ssl_certificate /etc/ssl/certs/your_certificate.crt;
ssl_certificate_key /etc/ssl/private/your_private_key.key;

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;

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

Burada, `listen 443 ssl;` ifadesi sunucunun HTTPS üzerinden dinlemesini sağlar. `ssl_certificate` ve `ssl_certificate_key` direktifleri, sertifika ve anahtar dosyalarının yollarını belirtir. `ssl_protocols` ve `ssl_ciphers` direktifleri ise hangi protokollerin ve şifreleme yöntemlerinin kullanılacağını tanımlar.

Gelişmiş Güvenlik Ayarları

Ek güvenlik sağlamak amacıyla birkaç ilave ayar yapılabilir. Örneğin, HSTS (HTTP Strict Transport Security) kullanılabilir. Bu, kullanıcıların yalnızca HTTPS üzerinden siteye erişmelerini sağlar. Aşağıdaki satır, HSTS desteği ekler:

“`nginx
add_header Strict-Transport-Security “max-age=31536000; includeSubDomains” always;
“`

Ayrıca, X-Frame-Options, X-XSS-Protection gibi başlıklar ile XSS koruması ve clickjacking koruması sağlanabilir:

“`nginx
add_header X-Frame-Options DENY;
add_header X-XSS-Protection “1; mode=block”;
“`

Nginx Konfigürasyonunun Test Edilmesi

Yapılandırma dosyası düzenlendikten sonra, değişikliklerin geçerli olup olmadığını kontrol etmek önemlidir. Bunun için aşağıdaki komut kullanılabilir:

“`bash
nginx -t
“`

Bu komut, yapılandırma dosyasını kontrol eder ve hatalı bir yapılandırma varsa bunu bildirir. Test başarılıysa, Nginx servisi yeniden başlatılarak değişikliklerin etkinleştirilmesi gerekir:

“`bash
systemctl restart nginx
“`

Son Kontroller

HTTPS bağlantısının doğru çalışıp çalışmadığını kontrol etmek için bir web tarayıcısı açarak alan adı ziyaret edilmelidir. Tarayıcı adres çubuğunda kilit simgesi göründüğünde, bağlantının güvenli olduğu anlaşılır.

Sonuç

Nginx üzerinde SSL/TLS konfigürasyonu, web siteleri için güvenliği artırarak kullanıcıların gizliliğini korur. SSL sertifikalarıyla yapılan düzenlemeler, hem kullanıcı deneyimini artırır hem de arama motoru optimizasyonuna katkı sağlar. HTTPS etkinleştirilmesi, modern web standartlarının bir gerekliliği haline gelmiştir ve güvenli internet kullanımının teşvik edilmesine yardımcı olur.

CEVAP VER

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

SON İÇERİKLER

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