LOCALTR / JOURNAL

Mac’te yerel HTTPS neden gerekir?

HTTPS’i yalnız canlı ortama bırakmak hangi hataları gizler? Yerel isim, sertifika güveni ve gerçek cihaz testini birlikte ele alıyoruz.

Kaynak incelemesi: . Web metni, bağlı rehberler ve ilgili uygulama kaynakları gözden geçirildi. Bu inceleme Mac kurulumu, gerçek tünel veya native Replay kabulü değildir.

Bu yazıda

Tarayıcıdan yerel HTTPS adresine gelen istek, Mac'teki LocalTR proxy üzerinden localhost servisine ulaşır.
Açıklayıcı veri akışı; uygulama ekran görüntüsü değildir.

Bir özelliği localhost üzerinde tamamlayıp canlıya çıkınca farklı davrandığını görmek tanıdık bir durum. Çerezler, yönlendirmeler ve tarayıcı izinleri yalnız uygulama koduna bağlı değildir. Sayfanın hangi origin üzerinden, hangi protokolle açıldığı da davranışı belirler. Yerel HTTPS, bu farkın bir bölümünü daha erken görmenin yoludur.

Önce adresin kimliğini sabitle

Bir proje localhost:3000, diğeri localhost:5173 olduğunda portlar kolayca karışır. magaza.local ve api.local gibi isimler, hangi servisi açtığını anlamanı kolaylaştırır. Bu isimlendirme tek başına HTTPS sağlamaz; isim, proxy eşlemesi ve sertifika güveni birbirini tamamlayan ayrı parçalardır.

LocalTR yerel adı Mac'teki bir porta yönlendirir. Sunucunu sen başlatırsın. Doğrudan port adresi çalışmıyorsa yeni bir isim eklemek uygulama hatasını çözmez. İlk kontrol her zaman en kısa yoldur: uygulamayı localhost üzerinden aç, sonra adlandırılmış HTTP adresini, ardından HTTPS adresini dene.

Kendi projenin HTTP kontrolünü Next.js yerel göreviyle yapabilirsin; LocalTR ile adlandırma ve HTTPS güveni ayrı adımlardır.

HTTPS testi neyi ortaya çıkarır?

Secure öznitelikli bir çerezin davranışını, HTTPS'e yönlendirmeyi veya uygulamanın ürettiği callback adreslerini gerçek kullanacağın protokol üzerinde inceleyebilirsin. HTTPS sayfa içindeki HTTP kaynakları da görünür bir sorun haline gelebilir. Böylece tarayıcı konsolundaki hata, sunucu logundaki hata ve proxy eşlemesindeki hata birbirinden ayrılır.

Bundan “HTTPS her güvenlik sorununu çözer” sonucu çıkmaz. Yerel sertifikana güvenilmesi, uygulamanın yetkilendirmesini denetlemez ve bütün tarayıcı güvenlik politikalarını değiştirmez. Bazı özelliklerin localhost için özel davranışı olabilir. Bu nedenle test notuna yalnız “çalıştı” yazmak yerine kullanılan tam origin'i, tarayıcıyı ve beklenen sonucu eklemek daha yararlıdır.

Localhost ile .local aynı güven bağlamı değildir

MDN’nin secure context açıklamasına göre http://localhost ve loopback adresleri tarayıcı tarafından potansiyel olarak güvenilir sayılabilir. Bu istisnayı herhangi bir .local adına taşıma. http://magaza.local için aynı sonucu varsaymak yerine adı, protokolü ve tarayıcıyı birlikte kontrol et.

Açtığın originKontrolün amacı
http://localhost:3000Servisin doğrudan yanıtını ve localhost istisnasını gözle.
http://magaza.localİsim ve port eşlemesini doğrula.
https://magaza.localAynı adla sertifika güvenini ve HTTPS davranışını doğrula.

Geliştirici konsolunda window.isSecureContext değerini okuyabilirsin. Bu değer tek başına çerez, yetkilendirme veya tüm sayfa kaynaklarının doğru çalıştığını kanıtlamaz. Yukarıdaki tablo bir test planıdır; LocalTR’nin yayımlanmış bir sürümünde alınmış tarayıcı sonucu olarak sunulmuyor.

Sertifika üretmek ile güvenmek farklıdır

LocalTR yerel bir root CA oluşturur. Tarayıcının o CA'ya güvenebilmesi için macOS'ta ayrı güven kurulumu ve gereken yönetici onayı tamamlanır. Kurulum sırasında iptal edilen bir izin, sonraki sertifika uyarısını açıklayabilir. Uyarıyı geçip devam etmek başarılı kurulum kanıtı değildir.

Sertifika hatasında üç soruyu sırayla sor: Doğru hostname'i mi açtım? Sertifika tarihi geçerli mi? Bu Mac ilgili otoriteye güveniyor mu? Bu sıralama, port değiştirerek bir güven problemini çözmeye çalışmanı engeller. CA özel anahtarı ise destek mesajının parçası olmamalıdır; yerel güven malzemesini sıradan bir hata günlüğü gibi paylaşma.

Yerel HTTPS rehberi, sertifika üretimi ile macOS güven onayını ayrı anlatır.

Telefon testi ayrı bir kabul adımıdır

Mac'inde güvenilen magaza.local adresinin aynı ağdaki telefonda açılacağı garanti değildir. Telefonun adı çözebilmesi, Mac'e erişebilmesi ve sertifika otoritesine güvenmesi gerekir. QR kod yalnız adresi taşır. Ağ izolasyonunu, multicast engelini veya sertifika güvenini ortadan kaldırmaz.

Public URL ise başka bir akıştır: ziyaretçi LocalTR relay üzerinden çalışan Mac'e ulaşır. Yerel HTTPS güveni ile public bağlantının internet TLS'i aynı kurulum değildir. Yerel testi geçtiğinde public testi de geçmiş sayma; farklı ağdan bir kontrol daha yap.

Küçük bir tekrar edilebilir kontrol listesi

  1. Geliştirme sunucunu doğrudan porttan aç ve beklenen sayfayı doğrula.
  2. Yerel adı ekle; HTTP üzerinden doğru uygulamaya gittiğini kontrol et.
  3. Yerel HTTPS güvenini kur; aynı adı HTTPS ile yeniden aç.
  4. Çerez, yönlendirme ve karışık içerik davranışını kendi senaryonla dene.
  5. İkinci cihaz veya public paylaşım gerekiyorsa bunları ayrı sonuçlarla kaydet.

Bu yaklaşım test ortamını canlı ortamın kusursuz kopyası yapmaz. Protokol ve origin farklarını görünür hale getirir; geliştirirken çözülebilecek sorunları yayın anına bırakmaz. Uygulama için adım adım kurulum yerel HTTPS rehberinde.

Sonraki adım

İndirme açıldığında haber ver

İmzalı kurulum paketi hazırlanıyor. İsteğe bağlı indirme bildirimi, e-posta doğrulamasından sonra tek açılış bildirimi içindir; denemeyi başlatmaz ve blog bülteni kaydı değildir.

Bir adım farklı mı görünüyor?

Sürüm bilgisiyle destek iste