Jak w końcu uruchomiłem proCertum SmartSign na Linuxie? (Raport z podróży, która trwała lata)
Od co najmniej 2003 roku używam Linuxa na co dzień – najpierw Ubuntu, potem Zorin OS, czasem Pop!_OS, kiedyś nawet Gentoo. Jestem do tego systemu przywiązany jak stary pies do swojej budy. Niestety, jedna rzecz od zawsze działała mi na nerwy: podpis kwalifikowany od Certum. W pracy standardem był Windows, tam proCertum SmartSign działał bez zarzutu. Ale u mnie, na Linuxie, instalowałem tę aplikację już chyba z dziesięć razy i za każdym razem efekt był ten sam: program się uruchamiał, widział swój interfejs, ale nie widział klucza USB. Tak jakby go nie było. Zero reakcji.
Tło problemu, czyli "pomożemy, ale nie do końca"
Pewnego razu – a było to jakieś dwa lata temu – skontaktowałem się nawet z pomocą techniczną Certum. Odpowiedź, którą dostałem, była co najmniej rozbrajająca: środowisko graficzne powinno być inne niż Gnome. No tak. Tyle, że ja od zawsze używam właśnie Gnome i nie zamierzam zmieniać pulpitu tylko po to, żeby podpisać jeden dokument. Ta odpowiedź skutecznie mnie zniechęciła i na długi czas pogodziłem się z tym, że do podpisu będę musiał odpalać wirtualną maszynę z Windowsem.
Moment olśnienia i odrobina samozaparcia
Dopiero teraz, przy okazji kolejnej próby (chyba jedenastej), postanowiłem podejść do sprawy inaczej. Miałem chwilę wolnego czasu i pomyślałem: "Słuchaj, przecież to musi działać. To tylko kwestia znalezienia tego jednego, brakującego elementu." I tak, zamiast od razu kląć na producenta, usiadłem i zacząłem metodycznie szukać.
Krok 1: Czy system w ogóle widzi czytnik?
Na początek podłączyłem czytnik – mały, czarny, firmy ACS (Advanced Card Systems), model ACR39U. Otworzyłem terminal i wbiłem:
lsusb
Na szczęście urządzenie było widoczne. To była pierwsza dobra wiadomość: system sprzętowo widział czytnik. Problem leżał gdzieś wyżej.
Krok 2: Brakujący sterownik, czyli główny winowajca
Zacząłem drążyć głębiej i dotarłem do informacji, że czytnik ACS wymaga dodatkowego sterownika acsccid, który współpracuje z usługą pcscd. Bez niego system widzi urządzenie, ale nie potrafi się z nim komunikować. Sterownik znalazłem na stronie ACR39U Smart Card Reader.
Najpierw upewniłem się, że sama usługa PC/SC jest zainstalowana:
sudo apt update
sudo apt install pcscd
Potem pobrałem sterownik ze strony producenta. Dla mojej dystrybucji – Zorin OS 17.3 (odpowiednik Ubuntu 22.04, Jammy) – był to pakiet libacsccid1_1.1.13-1~bpo22.04.1_amd64.deb.
Instalacja jednym poleceniem:
sudo dpkg -i libacsccid1_1.1.13-1~bpo22.04.1_amd64.deb
I na koniec restart usługi:
sudo systemctl restart pcscd
W zasadzie to był cały sekret. Jeden brakujący sterownik i jedna restartowana usługa.
Krok 3: Aplikacja wreszcie działa
Odpaliłem proCertum SmartSign z terminala (aplikację już miałem wcześniej zainstalowaną):
/opt/proCertumSmartSign/proCertumSmartSign.sh
Aplikacja wystartowała i… zobaczyła klucz. Po raz pierwszy od niepamiętnych czasów. Wszystko poszło automatycznie.
Podpisanie dokumentu testowego – druku płatności PDF – przebiegło gładko. Pin, potwierdzenie, gotowe. Żadnych błędów, żadnych ostrzeżeń o czasie letnim czy innych dziwnych logów.
Wnioski dla potomnych
Okazuje się, że odpowiedź od pomocy technicznej sprzed dwóch lat mijała się z prawdą. Problem nie tkwił w Gnome, tylko w sterowniku do czytnika, o którym nikt nie wspomniał. Gdybym wtedy wiedział o acsccid, oszczędziłbym sobie masę frustracji.
Tak więc jeśli stoisz przed tym samym problemem co ja – Linux, proCertum SmartSign, czytnik ACS ACR39U i aplikacja nie widzi klucza – sprawdź po prostu, czy masz zainstalowany sterownik libacsccid1 i czy usługa pcscd działa. Reszta pójdzie z górki.
Po latach walki: zwycięstwo. I to na przekór pomocy technicznej.