Među korisnicima u Srbiji prilično je rasprostranjeno mišljenje da elektronska lična karta može da se koristi isključivo na Windows operativnom sistemu. Čak i među IT stručnjacima često se može čuti tvrdnja da je korišćenje državnih elektronskih servisa na Linuxu praktično nemoguće.
U ovom tekstu pokazaćemo kako smo uspešno iskoristili čitač lične karte za potpisivanje dokumenata na servisima kao što su APR i eUprava.
Pre samog korišćenja lične karte potrebno je da vaša lična karta ima čip, i da nabavite digitalni sertifikat za ličnu kartu u porostorijama MUP-a. Sertifikat je potpuno besplatan i važi 5 godina.
Tehnički zahtevi
U našem primeru koristili smo Mozilu instaliranu preko apt-a na Debian 13 (Trixie) i Thales čitač ličnih karata. Moguće je koristiti i druge kompatibilne čitače koji podržavaju PCSC standard.
Potrebni paketi
Pre instalacije NexU softvera koji možete pronaći na sajtu APR-a, potrebno je intalirati sledeće alate:
sudo apt update
sudo apt install pcscd pcsc-tools opensc default-jre openjfx libnss3-tools
Šta smo ovde instalirali:
- pcscd - Servis koji omogućava komunikaciju između operativnog sistema i čitača pametnih kartica.
- pcsc-tools - Sadrži alat pcsc_scan koji služi za proveru da li sistem vidi čitač i karticu.
- opensc - Biblioteka i alati za rad sa pametnim karticama i PKCS#11 interfejsima.
- default-jre - Java runtime okruženje koje je potrebno za pokretanje NexU aplikacije koju koristi APR.
- openjfx - JavaFX biblioteka koja je potrebna za grafički interfejs NexU aplikacije.
- libnss3-tools - Alati koji omogućavaju instalaciju lokalnog sertifikata u Firefox i druge browser-e.
Instalacija PKCS#11 modula za srpsku ličnu kartu
Srpska lična karta koristi specifičan način komunikacije sa čipom koji nije podržan u standardnim OpenSC alatima. Zbog toga je potreban poseban PKCS#11 modul koji prevodi standardne PKCS#11 pozive u ispravne komande za MUP-ov čip.
Open-source implementacija koju koristimo (ubavic/srb-id-pkcs11) je trenutno najpouzdanija i aktivno se održava (poslednji release v0.4.0 – februar 2026).
Open-source implementacija ovog modula dostupna je na GitHub-u:https://github.com/ubavic/srb-id-pkcs11
Da bismo izbegli pravljenje builda pomoću Zig-a, skinuli smo gotov build sa linka ispod:
https://github.com/ubavic/srb-id-pkcs11/releases
U našem slučaju je to libsrb-id-pkcs11.so.0.4.0 koji smo nakon skidanja preimenovali u libsrb-id-pkcs11.so i premestili u lib folder.
mkdir ~/lib
cd ~/Downloads
mv libsrb-id-pkcs11.so.0.4.0 ~/lib/libsrb-id-pkcs11.so
Ovu putanju ćemo koristiti u narednim koracima kada proveravamo modul i dodajemo ga u Firefox. Preimenovanje biblioteke nije obavezno, ali olakšava korišćenje jer se izbegava unos broja verzije u komandama.
Provera očitavanja lične karte i pristupa sertifikatu
Nakon instalacije pokrećemo pcscd
sudo systemctl start pcscd
Ubacite ličnu kartu u čitač, pokrenite pcsc_scan
pcsc_scan
Ukoliko je sve bilo dobro u terminalu ćete videti ključnu poruku:
Possibly identified card ….
Serbian Identity Card (eID)
Ovo znači da je čitač konektovan I da je pričitao sadržaj lične karte. Ukoliko imate problem, proverite da ličnu kartu niste okrenuli naopako. Alat pcsc_scan je najjednostavniji način da proverite da li je hardverski deo sistema ispravno podešen pre nego što nastavite sa instalacijom ostalih alata.
Nakon toga proverite da li računar može da pristupi sertifikatima na ličnoj karti putem PKCS#11 modula za srpsku ličnu kartu:
pkcs11-tool --module ~/lib/libsrb-id-pkcs11.so -L
Ključna stvar koju tražimo je NetSeT's CardEdge Token. Ukoliko je prisutan, znači da je računar uspešno pristupio sertifikatu, kao i da se digitalni sertifikat nalazi na ličnoj karti. Ukoliko se ne nalazi, moguće da nije izdat od strane MUP-a.
Sledeći korak: pokretanje NexU servisa
Kada smo potvrdili da Linux može da vidi sertifikate na kartici, sledeći korak je pokretanje NexU aplikacije koju koriste državni servisi kao što je APR.
NexU radi kao lokalni servis koji omogućava browseru da pristupi sertifikatima na kartici i koristi ih za elektronsko potpisivanje.
NexU možete skinuti sa linka koji se nalazi na sajtu APR-a. Potrebno je odabrati Linux verziju.
https://aplikacije3.apr.gov.rs/ElektronskoPotpisivanje
U našem slučaju koristili smo NexU-APR instalacija za Linux - verzija 1.35 - 44 MB.
Nakon pokretanja NexU servisa moguće je pristupiti APR portalu i koristiti elektronski potpis direktno iz browsera.
U upustvu koje se nalazi na sajtu APR-a, navodi se da NexU pokrećemo komandom:
java -jar nexu-apr.jar
odnosno u našem slučaju:
java -jar nexu-apr-kdp-1.35.jar
Tu smo naišli na problem jer NexU koristi JavaFX za grafički interfejs, međutim na mnogim distribucijama JavaFX nije deo standardnog Java paketa tako da java ne može da automatski pronađe potrebne biblioteke. Tokom pokretanja NexU pokušava da pristupi internoj klasi javafx.tk.Toolkit, što je po defaultu onemogućeno na novim verzijama Jave iz bezbednosnih razloga.
Naša komanda za pokretanje NexU aplikacije je izgledala ovako:
java \
--module-path /usr/share/openjfx/lib \
--add-modules javafx.controls,javafx.fxml,javafx.graphics \
--add-exports javafx.graphics/com.sun.javafx.tk=ALL-UNNAMED \
-jar nexu-apr-kdp-1.35.jar
NexU mora ostati pokrenut dok koristite elektronsku ličnu kartu za prijavu ili potpisivanje dokumenata. Ako zatvorite terminal u kome je pokrenut NexU, servis će se ugasiti i browser više neće moći da pristupi sertifikatima na kartici.
Povezivanje sertifikata sa brauzerom
Upustvo na sajtu APR-a kaže da se nakon pokretanja NexU aplikacije sa ubačenom ličnom kartom u čitač, poseti sledeći link:
https://localhost:9889/favicon.ico
Ovde se korisniku na lokalnom serveru nudi opcija da automatski prihvati sertifikat. Kod nas na Mozili to nije radilo tako da smo sertifikat uneli ručno na sledeći način:
settings → security devices → Load
Tu smo upisali ime modula i putanju do modula. U našem slučaju je to:Module: srb-id-pkcs11
Path: home/nenad/lib/libsrb-id-pkcs11.so
Nakon toga smo restartovali Mozilu, ponovo došli na settings → security devices i dobili smo opciju za login. Tu smo uneli pin lične karte koji je odabran kada je u MUP-u kreiran digitalni sertifikat za ličnu kartu.
Nakon ovoga mogli smo uspešno da obavljamo digitalne potpise na sajtu APR-a.
U našem slučaju, sve je radilo kako treba, međutim neki korisnici su prijavili problem sa Mozilom koja je instalirana preko flatpack-a. Ovo se dešava zato što flatpack aplikacije pokreće u izolovanom sandbox okruženju koje nema pristup fajlovima izvan svog okruženja. U ovom slučaju je to čitač kartice. Najjednostavnje rešenje je korišćenje Mozile koja je instalirana preko apt-a, što smo mi i koristili u našem primeru.
Ukoliko želite da ipak koristite flatpack Mozilu, potrebno je da joj date dozvole.
flatpak override --user --filesystem=/home/ime.korisnika/lib org.mozilla.firefox
U našem primeru koristili smo alat srb-id-pkcs11 čiji je autor Nikola Ubavčić. Ubavčić je takođe autor aplikacije Baš Čelik koja za razliku od državne aplikacije Čelik radi na Windows, Linux i Mac OS-u. Baš Čelik smo takođe testirali na Debian-u 13 i uspešno smo očitali ličnu kartu.
Korišćenje Linux distribucija kao glavnog operativnog sistema često je bilo obeshrabrivano tvrdnjom da digitalni potpis i očitavanje ličnih karata na ovom sistemu ne funkcioniše. U ovom kratkom tekstu smo dokazali da to nije tačno i čitaocima dali uputstvo kako da i sami koriste čitače kartica i digitalne sertifikate na svojim Linux računarima.




