Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

HTTPS'e geçiş yapmak ve API iletişimini SSL/TLS ile şifrelemek için gereken adımlar

thedevx

Üye
Katılım
14 Mart 2026
Mesajlar
25
Merhaba arkadaşlar, bugün başımı çok ağrıtan bir konudan bahsedeceğim: HTTPS'e geçiş ve API'lerin güvenliği. Bir projede, "mixed content" hataları ve güvensiz API çağrıları yüzünden neredeyse kafayı yiyordum. Tarayıcılar artık HTTP sitelerini direkt "güvenli değil" diye işaretliyor. İşte benim izlediğim, en temiz ve sağlam adımlar.

🔐 Neden HTTPS ve SSL/TLS Şart?

Eskiden "sitemde form yok, kredi kartı işlemi yok, HTTP idare eder" diye düşünürdük. Ama artık öyle değil! HTTPS, sadece veri şifrelemez. Arama motoru sıralamanızı (SEO) etkiler, tarayıcıların yeni özelliklerine (geolocation, service workers vb.) erişmenizi sağlar ve en önemlisi, kullanıcı ile sunucunuz arasındaki tüm iletişimi korur. API'niz HTTP üzerinden çalışıyorsa, gönderdiğiniz her veri (kullanıcı adı, token, kişisel bilgiler) açık metin olarak gidiyor demektir. Bu riski almak olmaz.

📝 Adım 1: SSL/TLS Sertifikası Edinmek

İlk adım bir sertifika edinmek. Artık Let's Encrypt sayesinde bu tamamen ücretsiz ve otomatik. Eğer hosting paneliniz (cPanel, Plesk) varsa, genelde bir-iki tıkla kurulum yapabiliyorsunuz. Ben sunucu yönetimine daha hakimim diyorsanız, Certbot aracını kullanmanızı şiddetle tavsiye ederim.

Sunucunuza SSH ile bağlanıp aşağıdaki gibi kurulum yapabilirsiniz. (Örnek Nginx için):

Bash:
sudo apt update
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d orneksiteniz.com -d www.orneksiteniz.com

Bu komutlar, sertifikayı alıp Nginx yapılandırmanızı otomatik olarak güncelleyecektir. Sertifikanın otomatik yenilenmesi de ayarlanır. certbot gerçekten hayat kurtarıcı.

⚙️ Adım 2: Sunucu Yapılandırmasını Sıkılaştırmak

Sertifikayı kurmak yeterli değil. Doğru yapılandırma çok önemli. Nginx veya Apache ayarlarınızda güvenliği artıracak bazı direktifler eklemelisiniz. İşte benim Nginx konfigürasyonumdan örnek bir blok:

NGINX:
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name orneksiteniz.com;

    ssl_certificate /etc/letsencrypt/live/orneksiteniz.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/orneksiteniz.com/privkey.pem;

    # Modern, güvenli protokoller ve şifreler
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512;
    ssl_prefer_server_ciphers off;

    # HSTS - Tarayıcıyı hep HTTPS kullanmaya zorla (DİKKATLİ OLUN!)
    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;

    # ... diğer sunucu ayarlarınız ...
}

Buradaki Strict-Transport-Security (HSTS)[COLOR] header'ı çok güçlüdür. Tarayıcıya "bu siteye bir daha sadece HTTPS üzerinden bağlan" talimatı verir. Ancak, sitenizin TÜM alt alan adlarında (subdomain) HTTPS'in çalıştığından emin olmadan includeSubDomains eklemeyin, yoksa kilitlenirsiniz.

🔗 Adım 3: Frontend ve API Bağlantılarını Güncellemek

Sertifika hazır, sunucu hazır. Şimdi sıra kodda. Tüm kaynak bağlantılarınızı (CSS, JS, font, image) ve API endpoint'lerinizi mutlaka HTTPS yapın. "//" (protocol-relative URL) kullanmak pratik bir çözümdür, ama ben artık direkt "https://" yazmayı tercih ediyorum.

React, Vue veya vanilla JS'de API isteklerinizi kontrol edin:

JavaScript:
// ESKİ ve TEHLİKELİ
fetch('http://api.sitem.com/kullanicilar');

// YENİ ve GÜVENLİ
fetch('https://api.sitem.com/kullanicilar');

// Axios ile global baseURL ayarı (Laravel, Node.js backend için)
import axios from 'axios';
const apiClient = axios.create({
  baseURL: 'https://api.sitem.com',
  headers: { 'Content-Type': 'application/json' }
});

Backend tarafında (örneğin Laravel), .env dosyanızdaki APP_URL değişkenini de HTTPS olarak güncellemeyi unutmayın. Aksi takdirde, oluşturulan linkler (password reset maili gibi) yanlış olabilir.

✅ Adım 4: Test ve Doğrulama

Her şeyi yaptıktan sonra test şart! Tarayıcıda kilit simgesine tıklayıp sertifikanın geçerli olduğunu kontrol edin. SSL Labs SSL Test (ssllabs.com/ssltest) sitesine domaininizi yazıp detaylı bir rapor alın. Buradan "A+" notunu hedefleyin. Ayrıca, sitenizde "mixed content" (karışık içerik) hatası kalmadığından emin olun. Tarayıcı geliştirici konsolunun "Security" sekmesi bu konuda size yardımcı olacaktır.

Sonuç olarak, HTTPS'e geçmek artık bir lüks değil, zorunluluk. Bu adımları takip ederek hem kullanıcılarınızın güvenliğini sağlamış, hem de SEO ve performans avantajlarından yararlanmış olursunuz.

Peki ya siz? HTTPS geçiş sürecinizde hangi zorluklarla karşılaştınız? Certbot dışında farklı bir sertifika otomasyon aracı kullanan var mı? Ya da backend API'nizde SSL sertifikası doğrulaması ile ilgili ekstra önlemler alıyor musunuz? Yorumlarda deneyimlerinizi paylaşın!
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri