Sorun giderme
Önce tanılama
Çoğu sorunun nedeni şu iki araçtan biriyle hemen görülür:
curl http://localhost:5000/api/sign/check # kütüphaneler, token'lar, sertifikalar
./scripts/test-sign # etkileşimli tanılama ve deneme imzasıArdından logs/ klasöründeki günün log dosyasına bakın. Her istek bir ilişki numarası (correlation id) taşır; aynı isteğe ait satırları bu numarayla bulabilirsiniz.
Sık karşılaşılan hatalar
Hata mesajlarında PIN ve anahtar materyali asla yer almaz; TCKN maskelenir (123*****901).
| Mesaj (özet) | Neden | Çözüm |
|---|---|---|
| PKCS#11 kütüphanesi yüklenemedi … Dosya yok | Sürücü kurulu değil veya yol yanlış | Sürücüyü kurun; Sign:Pkcs11LibraryPath'i düzeltin veya boş bırakıp otomatik bulunmasını sağlayın |
| Dosya var ama yüklenemedi … aynı mimaride mi | 32 / 64 bit uyumsuzluğu veya eksik bağımlılık | Sürücüyle aynı mimarideki paketi kullanın; Linux'ta ldd <kütüphane> ile eksikleri görün |
| takılı token yok | Token takılı değil veya pcscd çalışmıyor | Token'ı takın; Linux'ta systemctl status pcscd |
| imza sertifikası … hiçbirinde bulunamadı | Yanlış token takılı veya sertifikada bu TCKN yok | Doğru token'ı takın; /api/sign/check token'lardaki TCKN'leri listeler |
| PIN hatalı (CKR_PIN_INCORRECT) | Yanlış PIN | Doğru PIN ile tekrar deneyin — aşağıdaki uyarıyı okuyun |
| PIN'i kilitli (CKR_PIN_LOCKED) | Deneme hakkı bitti | Token sağlayıcınızın PIN açma (PUK) aracını kullanın |
| PIN biçimi … (CKR_PIN_LEN_RANGE) | PIN çok kısa veya uzun | Doğru PIN |
| CKR_DEVICE_REMOVED | İşlem sırasında token çıkarıldı | Token'ı takıp tekrar deneyin |
| Donanım … içinde yanıt vermedi | Token yanıt vermiyor; bağlantı sıfırlanıyor (HTTP 503) | Birkaç saniye bekleyip tekrar deneyin |
| Yalnızca RSA anahtarları desteklenir | Sertifika EC anahtarlı | RSA sertifikalı token kullanın |
| TSA sunucusuna bağlanılamadı | Ağ, DNS veya vekil sunucu engeli | TSA adresine çıkışa izin verin |
| TSA … HTTP 401 | TSA hesap istiyor | Sign:Tsa:Username / Password girin |
| TSA yanıtı işlenemedi | Adres bir RFC 3161 servisi değil | Sağlayıcı adresini doğrulayın |
| Hash geçersiz / … bayt olmalıdır | Hash biçimi veya uzunluğu algoritmayla uyuşmuyor | SHA256 için 32 bayt (64 hex karakter) |
PIN ve token kilidi
Nitelikli e-imza token'ları art arda belirli sayıda yanlış PIN girildiğinde kendini kilitler ve kilit yalnızca PUK ile açılır.
QuickSign bunu önlemek için PDF uçlarında (/sign/pdf/base64, /base64pdfimzala) her TCKN için ardışık hatalı denemeleri sayar. İki ardışık hatadan sonra o TCKN'ye gelen istekler token'a hiç gönderilmeden PIN_LOCKED ile reddedilir. Sayaç bellekte tutulur: doğru PIN'den emin olduktan sonra QuickSign'ı (servisi) yeniden başlatmak engeli kaldırır.
Token kaydına PIN saklıyorsanız ve token'ın PIN'i değiştiyse kaydı güncelleyin; aksi halde her istek eski PIN'le deneme yapar:
curl -X PATCH http://localhost:5000/api/sign/tokens/1 \
-H "Content-Type: application/json" -d '{"pin":"YENI_PIN"}'Linux'a özel
pcscdçalışmıyorsa token görünmez:sudo systemctl enable --now pcscd.- Servis kullanıcısının USB okuyucuya erişimi olmalıdır; sorun yaşıyorsanız önce uygulamayı aynı kullanıcıyla elle çalıştırıp
/api/sign/checkçıktısını karşılaştırın. - Güncel dağıtımlarda
libdladı uyumluluğu QuickSign tarafından otomatik çözülür;libc6-devkurmanız gerekmez.
Windows'a özel
- Servis olarak çalışırken token görünmüyor ama elle çalıştırınca görünüyorsa, sürücünün servis hesabıyla (LocalSystem) çalışmayı desteklediğinden emin olun.
- 32 bit sürücüler yalnız
win-x86paketiyle yüklenir.
Port kullanımda
Failed to bind to address hatası 5000 portunun başka bir uygulama tarafından kullanıldığını gösterir. Başka bir port seçin:
./QuickSign --Urls=http://127.0.0.1:5050Hâlâ çözemediniz mi?
Log dosyasının ilgili bölümünü (PIN içermez) ve /api/sign/check çıktısını ekleyerek [email protected] adresine yazın.
Sorunuzun cevabını bulamadınız mı? [email protected]