Linux и електронното подписване в портала на Патентно ведомство

Темата за електронните услуги предлагани чрез портала на Патено Ведомство на РБ е особено актуална в условията на пандемия и свързаната с противоепидемичните мерки дистанционна работа. Всъщност ведомството предлага постоянно разширяващ се набор от електронни услуги от години, a проблемите със системата за електронно подписване на подадените чрез услугите на портала документи са известни на всички, които са се опитвали да я използват, по конкретно имам предвид работата на подписващия модул „NexU“ [още].

Въпреки, че NexU претендира да работи на всякакви платформи – дори без инсталирана Java – се оказва практически трудно (по някога до степен на невъзможност с разумни усилия) да се осигури среда за безпроблемна работа, а за ползващите Linux липсва каквато и да е информация (защо такава следва да има е тема за отделна публикация).

Използвате Linux и искате да работите чрез портала на Патентно ведомство?! Вижте как:

Предварителни бележки

Изложението е съобразено със следните варианти на 64-bit Linux, за които съм се убедил, че предложения подход е работещ: Ubuntu 16.04 LTS; Ubuntu 18.04 LTS; Mint 18; Mint 19 и Mint 20 (независимо от графичната среда). За съжаление, по неизвестни за мен причини, нещата не се случват с представената тази пролет версия на Ubuntu 20.04 LTS.

Предпоставки

Инсталирани драйвери за четец и карта

Инсталирайте драйверите за използвания от Вас четец и съответния модел смарт карта следвайки инструкциите на Вашия доставчик на удостоверителни услуги: за мен лично най-лесно е да следвам инструкциите от сайта на Инфонотари АД [тук].

Изтеглете и разархивирайте NexU

NexU можете да изтеглите от сайта на Патентно ведомство [изтегли]. Разархивирайте и запазете файловете така, че да имате удобен достъп до тях занапред. Намерете файла „nexu.jar“ и от контекстното меню (десен бутон) изберете „Properties/Свойства“:

В раздел „permissions“ на новопоявилия се прозорец поставете отметка на „Allow executing file as program“.

Изтегляне и инсталиране на Oracle Java 8

И така, стигнахме до реалната пречка за използване то на системата за подписване: NexU не само изисква наличието на инсталирана Java – противно на твърдяното от разработчиците – но е претенциозен и към конкретната версия – единствената, с която имам успех към днешна дата е 8u212.

За съжаление вече няма достъп до Oracle Java чрез хранилищата на трети страни – причината е в лицензионните условия на Oracle. Единственият легален начин да изтеглите Java е от сайта на разработчика [тук].

В страницата от горната препратка към страницата с архиви на Oracle намерете и изтеглете следния файл: „jdk-8u212-linux-x64.tar.gz“ – това е версията, с която NexU работи в посочените по-горе конфигурации. За да работят командите описани по-нататък се уверете, че файлът е записан в директория/папка „Downloads“ на Вашия компютър 1.

(1) Трябва да се създаде директория за новата Java инсталация. Отворете терминал (Ctrl+Alt+T) и въведете следното:

sudo mkdir /usr/lib/jvm

След въвеждане на парола най-вероятно ще получите съобщение за грешка от сорта на „mkdir: cannot create directory ‘/usr/lib/jvm’: File exists„. Причината е, че всички гореспоменати Linux дистрибуции съдържат друга (наработеща с NexU) версия на Java (OpenJDK 11), която е инсталирана в поддиректория на същата папка.

(2) Въведете следното, за да промените работната директория:

cd /usr/lib/jvm

(3) Следва разархивиране на сваления файл:

sudo tar -xvzf ~/Downloads/jdk-8u212-linux-x64.tar.gz

(4) За да укажете на системата, че трябва да използва тази версия на Java вместо инсталираната по подразбиране въведете следното:

За Ubuntu Linux:

sudo gedit /etc/environment

За Linux Mint:

sudo xed /etc/environment

След като въведете парола ще се отвори текстов файл, който би трябвало да съдържа следното:
PATH=“/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games“

Редактирайте го така, че да изглежда по следния начин:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/jdk1.8.0_212/bin:/usr/lib/jvm/jdk1.8.0_212/db/bin:/usr/lib/jvm/jdk1.8.0_212/jre/bin"
J2SDKDIR="/usr/lib/jvm/jdk1.8.0_212"
J2REDIR="/usr/lib/jvm/jdk1.8.0_212/jre"
JAVA_HOME="/usr/lib/jvm/jdk1.8.0_212"
DERBY_HOME="/usr/lib/jvm/jdk1.8.0_212/db"

Запазете промените и затворете файла.

(5) Въведете една след друга следните команди:

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0_212/bin/java" 0
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.8.0_212/bin/javac" 0
sudo update-alternatives --set java /usr/lib/jvm/jdk1.8.0_212/bin/java
sudo update-alternatives --set javac /usr/lib/jvm/jdk1.8.0_212/bin/javac

(6) Въведете следните команди:

update-alternatives --list java
update-alternatives --list javac

В резултат би трябвало да видите списък, в който да присъстват следните редове, съответно:
/usr/lib/jvm/jdk1.8.0_212/bin/java
/usr/lib/jvm/jdk1.8.0_212/bin/javac

Ако е така – рестартирайте компютъра и след това въведете:

java -version

Всичко е наред ако в резултат на горната команда получите следното:

java version „1.8.0_212“
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)

Стартиране на NexU

Време е да отворите папката, в която разархивирахте изтегления от сайта на ведомството файл „Nexu.zip“. Стартирането на програмата става чрез изпълнение – по подразбиране с двойно „кликване“ – на файла „nexu.jar“.

При успешно стартиране на NexU в System Tray ще се появи съответната икона.

Подписване

Описаните оттук нататък действия са приложими към използването на портала независимо от платформата (операционна система и Интернет браузър).