SSL Sertifikası

Nginx HTTPS Yönlendirme Yapılandırması

Nginx'te HTTP'yi HTTPS'e yönlendirmenin doğru yolu return 301 kullanmaktır. Ayrı server bloğu, www yönetimi ve test adımları.

Nginx'te HTTP'den HTTPS'e yönlendirme için rewrite yerine return 301 kullanmak hem daha hızlı hem de daha okunaklıdır. Kural 80 portunu dinleyen ayrı bir server bloğunda tutulur.

Temel yapılandırma

server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    http2 on;
    server_name example.com www.example.com;
    ssl_certificate     /etc/ssl/example/fullchain.pem;
    ssl_certificate_key /etc/ssl/example/example.key;
}

http2 on; yönergesi Nginx 1.25.1 ve sonrası içindir; eski sürümlerde listen 443 ssl http2; yazılır.

www'yu tek biçime sabitlemek

Hedef adresi $host yerine sabit yazarsanız yönlendirme tek adımda canonical alan adına gider:

server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://example.com$request_uri;
}

443 bloğunda da www'lu adres için ayrı bir server tanımlayıp aynı şekilde yönlendirin; aksi halde www'lu HTTPS sürümü erişilebilir kalır.

Uygulama ve test

  1. Dosyayı düzenleyin (genelde /etc/nginx/conf.d/ veya sites-available/).
  2. Sözdizimini denetleyin: nginx -t
  3. Yeniden yükleyin: systemctl reload nginx
  4. Sonucu doğrulayın: curl -I http://example.com/deneme?a=1 çıktısında 301 ve doğru Location görülmeli.

Dikkat edilecekler

  • Let's Encrypt gibi HTTP doğrulaması kullanıyorsanız /.well-known/acme-challenge/ yolunu yönlendirmeden hariç tutmanız gerekebilir.
  • Yük dengeleyici arkasındaysanız döngüyü önlemek için $http_x_forwarded_proto değerine bakın.
  • Özel portlarda (ör. 8080) yönlendirme yazarken hedefte port belirtmeyi unutmayın.

HSTS ile birlikte

Yönlendirme sorunsuz çalıştığında 443 bloğuna add_header Strict-Transport-Security "max-age=31536000" always; ekleyebilirsiniz. Başlık yalnızca HTTPS yanıtlarında anlamlıdır; 80 portundaki yönlendirme yanıtına eklemek gerekmez. Alt alan adlarının hepsi HTTPS'e hazır değilse includeSubDomains kullanmayın ve süreyi önce kısa tutup kademeli artırın.

Sertifikanızı henüz almadıysanız SSL sertifikaları sayfasına, kurulum sonrası kontrol için SSL kontrol aracına göz atın.

Bu makale faydalı oldu mu?

Makale Ara

SSL Kurulum ve Yapılandırma

Yardıma mı İhtiyacınız Var?

Aradığınızı bulamadıysanız destek ekibimiz size yardımcı olabilir.

Destek Talebi Aç