🔴
Mali Mühür Merkezi TÜBİTAK Kamu SM Başvuru ve Süre Yönetimi Portalı

GİB Portal üzerinden mali mühürle e-Fatura onaylarken 'Signer null' şeklinde bir Java Exception fırlatıyor, Windows 11 güncellemelerinden sonra bu sorunu yaşayan oldu mu?

Windows 11 23H2 / 24H2 güncellemesini yaptıktan sonra Gelir İdaresi Başkanlığı'nın e-Fatura Portalı (portal.efatura.gov.tr) üzerinden mali mühürle taslak faturaları onaylarken imzalama ekranında 'java.lang.NullPointerException: Signer is null', 'Signer null' veya 'Kart terminali başlatılamadı - Signer null' hatası almaya başladık. AKİS programında kartı görebiliyoruz, sertifika geçerli ve PIN kodunu doğru giriyoruz; fakat GİB İmza Aracı (signClient / Java Web Start veya yerel imzalama aracı) faturayı imzalama aşamasına geçtiği anda bu exception patlıyor ve faturalar onaylanmıyor. Windows 11 güncellemeleri Java ortamında veya akıllı kart sürücüsünde neyi bozmuş olabilir, bu hatanın kesin çözümü nedir?
Durum: Çözüldü Kategori: Soru-Cevap

2 Cevap

✓

Windows 11'in son büyük özellik güncellemelerinden (özellikle 23H2 ve 24H2) sonra GİB e-Fatura Portalı üzerinde ortaya çıkan 'java.lang.NullPointerException: Signer is null' hatası, doğrudan işletim sisteminin güncellenen güvenlik politikaları, akıllı kart PnP (Plug and Play) mimarisi ve Java PKCS#11 katmanı arasındaki iletişim kopukluğundan kaynaklanır.

Sorunun Kök Nedeni: GİB imza kütüphanesi (signClient.jar veya GİB İmzalama Aracı), mali mühürdeki sertifikayı okumak için sisteme kayıtlı PKCS#11 sürücüsüne (akisp11.dll) başvurur. PIN kodunu girseniz dahi, Windows 11 güncellemesi sonrası Java sanal makinesi (JVM) akıllı kartın kriptografik oturum tanıtıcısını (Session Handle) veya imzalayıcı nesnesini (Signer / PrivateKeyEntry) RAM belleğe yükleyemez. İmzalayıcı nesnesi hafızada boş kaldığı için Java çalışma zamanı NullPointerException: Signer is null hatası fırlatarak çöker.

Bu sorunu kalıcı olarak gidermek için aşağıdaki teknik adımları sırasıyla uygulayınız:

1. Adım: 32-Bit / 64-Bit Java Mimari Çakışmasını Düzeltin

  • Windows 11 güncellemeleri arka plandaki varsayılan Java yürütme yollarını değiştirebilir. Sisteminizde hem 32-bit hem de 64-bit Java yüklüyse veya sürüm 8'den yüksek (Java 11, 17, 21) sürümler varsayılan yapıldıysa GİB imzalama motoru çöker.
  • Denetim Masası -> Programlar sekmesine gidin. Sistemdeki tüm eski Java sürümlerini kaldırın.
  • Oracle resmi web sitesinden veya TÜBİTAK Kamu SM Yardımcı Yazılımlar sayfasından Java SE Runtime Environment 8 (JRE 8 Update 381 veya üstü - 64 Bit) sürümünü indirip kurun.

2. Adım: AKİS Windows 11 Uyumlu Kütüphanelerini Yeniden Yükleyin

  • Mevcut AKİS sürümünüz Windows 11 çekirdek güncellemeleriyle uyumsuz kalmış olabilir. kamusm.bilgem.tubitak.gov.tr/suruculer/ adresine girin.
  • En güncel Windows 11 64-bit AKİS Kurulum Paketini indirin. Kurulum dosyasını sağ tıklayıp 'Yönetici olarak çalıştır' diyerek sıfırdan kurun.
  • Kurulum sonrası şu iki dosya yolunun varlığını doğrulayın: C:\Windows\System32\akisp11.dll ve C:\Windows\SysWOW64\akisp11.dll. İmza araçları kartla bu DLL dosyaları üzerinden haberleşir.

3. Adım: Windows 11 Çekirdek Yalıtım (Memory Integrity) Ayarını Denetleyin

  • Windows 11'in yeni güvenlik katmanı olan 'Bellek Bütünlüğü' (Memory Integrity / Hypervisor-protected Code Integrity), eski nesil kart okuyucu sürücülerinin donanım belleğine doğrudan erişmesini engelleyebilmektedir.
  • Başlat menüsüne Cihaz Güvenliği yazın -> Çekirdek Yalıtım Ayrıntıları bölümüne girin.
  • Eğer sistem uyumsuz sürücü uyarısı veriyorsa, kart okuyucunuzun (ACS / Omnikey) üretici sitesinden en güncel WHQL imzalı Windows 11 sürücüsünü kurun.

4. Adım: Akıllı Kart Hizmetini Sıfırlayın ve Port Değiştirin

  • Windows + R tuşlarına basıp services.msc yazın. Akıllı Kart (Smart Card) hizmetini bulup sağ tıklayın ve 'Yeniden Başlat' deyin.
  • Mali mührü mavi renkli USB 3.0/3.1 portundan çıkarıp kasanın doğrudan anakarta bağlı siyah renkli bir USB 2.0 portuna takın.

5. Adım: GİB Yeni WebSocket İmzalama Aracını Kullanın

GİB e-Fatura Portalı'nın giriş ekranında yer alan ve Java Web Start bağımlılığını ortadan kaldıran GİB İmza Aracı (Yerel WebSocket Servisi) uygulamasını indirin. Uygulamayı masaüstünde sağ tıklayıp 'Yönetici olarak çalıştır' ile açın. Tarayıcıda fatura onaylama ekranına geldiğinizde imzalama işlemi doğrudan yerel servis üzerinden sorunsuz ve Signer null hatası almadan tamamlanacaktır.

Yanıtlayan
Destek Uzmanı C.

Destek Uzmanı C.'nin rehberine ilave olarak çok hızlı bir geçici çözüm önerisi paylaşmak isterim: Java tabanlı GİB istemcilerinde önbellek (cache) bozulması da 'Signer null' hatasını tetikleyebilmektedir. Sisteminizde yukarıdaki adımlara başlamadan önce şu hızlı temizliği yapabilirsiniz:

  • Denetim Masası'ndan Java (32-bit / 64-bit) simgesine tıklayın.
  • Açılan pencerede General sekmesinde Temporary Internet Files altındaki 'Settings' butonuna, ardından 'Delete Files...' butonuna basın.
  • Gelen ekranda 'Trace and Log Files' ve 'Cached Applications and Applets' kutularını işaretleyip 'OK' deyin.

Bu işlem, bilgisayarınızda takılı kalmış eski ve bozuk GİB imza applet'lerini sıfırlar. Ardından tarayıcınızı kapatıp yeniden açtığınızda güncel Java sınıfları taze olarak yüklenecek ve imzalamayı başarıyla geçecektir.

Yanıtlayan
Ayla Y.