Chrome 118 güncellemesinden sonra E-imza uygulaması (E-imza tr) WebSocket bağlantısı kuramıyor, 'localhost:8080 erişilemedi' diyor, Edge'de sorun yok
2 Cevap
Google Chrome'un 118 sürümü ve sonrasında yerel e-imza istemcilerinin (E-İmza TR, ArkSigner, Kamu SM vb.) web portallarıyla iletişim kuramaması, W3C tarafından standartlaştırılan ve Chromium ekibi tarafından kademeli olarak katılaştırılan Private Network Access (PNA - Özel Ağ Erişimi) ve Localhost Karışık İçerik (Mixed Content) güvenlik kısıtlamalarından kaynaklanmaktadır.
1. Web Tabanlı E-İmza Mimarisi ve Teknik Sorunun Kaynağı:
Tarayıcılarda Java NPAPI eklentilerinin kaldırılmasının ardından, BTK teknik kriterlerine uygun olarak geliştirilen web tabanlı e-imza çözümleri yerel bir masaüstü arka plan servisi kurar. Bu servis işletim sisteminde yerel bir soket açarak (örneğin http://127.0.0.1:8080 veya wss://localhost:8080) dinlemede kalır ve USB token içerisindeki PKCS#11 kütüphanesiyle (akisp11.dll, eTPKCS11.dll) konuşur. Web sitesindeki JavaScript kodu bu yerel sokete WebSocket veya HTTP fetch çağrısı yaparak imza işlemlerini yürütür.
Chrome 118 güncellemesi ile birlikte şu güvenlik mekanizmaları sıkılaştırılmıştır:
- PNA Ön Denetim (Preflight) İstekleri: Genel internet alanındaki güvenli bir web sitesi (
https://kamu-portali.gov.tr), istemcinin yerel ağına (localhost / 127.0.0.1) bir istek göndermek istediğinde, Chrome artık arka planda özel bir HTTPOPTIONSön denetim sorgusu fırlatır ve sunucudanAccess-Control-Request-Private-Network: truebaşlığını yanıtlamasını bekler. - Eski sürüm yerel e-imza istemcileri bu özel PNA başlığına yanıt verecek mimariye sahip olmadığından, Chrome 118 WebSocket el sıkışmasını (handshake) başlamadan 'Network Error / Connection Blocked' diyerek iptal eder.
- Microsoft Edge'de Neden Sorunsuz Çalışıyor? Edge tarayıcısı Chromium çekirdeğini kullansa da, Microsoft kurumsal uyumluluk ilkeleri gereği yerel döngü (loopback) ve PNA kısıtlamalarını Chrome kadar agresif devreye almamakta; Windows Schannel sertifika havuzunu daha esnek değerlendirmektedir.
2. Kalıcı ve Güvenli Çözüm Adımları:
- E-İmza Masaüstü Uygulamasını Güncelleyin (Kesin Çözüm):
E-İmza TR veya ArkSigner sağlayıcınızın resmi web sitesine giderek Chrome 118+ ve PNA uyumlu en güncel sürümü (genellikle v2.3+ veya v3.x) indirip kurun. Güncel sürümler yerel HTTP sunucusundaAccess-Control-Allow-Private-Network: trueveAccess-Control-Allow-Origin: *başlıklarını doğru biçimde döndürmektedir. - Chrome Bayraklarını (Flags) Geçici Olarak Yapılandırın:
Yazılım güncellemesini hemen yapamıyorsanız acil imzalarınız için Chrome adres çubuğuna şunları yazarak ayarları değiştirin:chrome://flags/#private-network-access-respect-preflight-results-short-circuit→ Disabled yapın.chrome://flags/#allow-insecure-localhost→ Enabled yapın.- Tarayıcının sağ altındaki 'Relaunch' butonuna basarak Chrome'u yeniden başlatın.
- Yerel SSL Kök Sertifikasını Kontrol Edin:
Eğer imza aracıwss://localhost:8080üzerinden şifreli WebSocket kullanıyorsa, aracın oluşturduğu yerel geliştirici kök sertifikası Chrome tarafından geçersiz sayılmış olabilir. KlavyedenWin + Rtuşlarına basıpcertmgr.mscyazın. Güvenilen Kök Sertifika Yetkilileri > Sertifikalar altında e-imza sağlayıcınızın yerel kök sertifikasının bulunup bulunmadığını ve süresini doğrulayın. - Port Dinleme Durumunu Teyit Edin:
PowerShell konsolunu açıpnetstat -ano | findstr :8080komutunu verin. ServisinLISTENINGmodunda olduğundan emin olun. Başka bir uygulama (örneğin Tomcat, Apache veya proxy yazılımları) 8080 portunu ele geçirmişse servis çakışmasını giderin.
5070 Sayılı Elektronik İmza Kanunu ve BTK teknik kriterleri kapsamında, tarayıcı bağımsız e-imza mimarilerinin güvenliği yerel PKCS#11 katmanı ile tarayıcı arasındaki TLS bütünlüğüne emanettir. Yukarıdaki adımlar güvenlik zafiyeti yaratmaksızın Chrome üzerindeki imzalama kanalınızı yeniden etkinleştirecektir.
Kurumsal şirket ağlarında yüzlerce bilgisayarda bu sorun Chrome 118 dağıtımı sonrası aniden patlak verdiğinde her makinede bayrak (flag) değiştirmek sürdürülebilir değildir. Bunun yerine Active Directory Group Policy (GPO) veya yerel kayıt defteri üzerinden merkezi politika uygulanabilir.
Kayıt Defteri Düzenleyicisi'nde (regedit) HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome anahtarı altına giderek InsecurePrivateNetworkRequestsAllowedForUrls adında bir String Array (REG_MULTI_SZ) oluşturup değer olarak kurumunuzun imza attığı portalları (örneğin https://*.turkiye.gov.tr, https://*.gib.gov.tr) ekleyebilirsiniz. Bu sayede Chrome genel güvenliği bozmadan yalnızca yetkili web portalları için yerel 8080 erişimine izin verir.