Skip to content

By Тодор in Linux

Според издателя на квалифицирания електронен подпис, инсталацията му в линукс е предизвикателство от различно ниво. Приемам, че подписа е коректно инсталиран според заводската му документация, и че плъгина на Firefox работи.

Това е достатъчно, за да се влезе в почти всеки сайт искащ удостоверяване с КЕП. Включително и в портала с електронни услуги, предоставяни от Националната Агенция по Приходите (НАП).

За да свършим някаква работа в този портал, обаче, само удостоверяването при влизане не е достатъчно. Всичко, което се попълва и изпраща, трябва да е допълнително подписано. А това става с… Java приложение разбира се 🙂

В Linux Mint 19.03 е необходимо да се инсталира icedtea-netx:

sudo apt install icedtea-netx

След това вече jnlp-то може да се изпълни, за да видим това:

StampIT LocalServices cannot start: access denied („java.util.PropertyPermission“ „com.sun.net.httpserver.HttpserverProvider“ „read“)

И тук приказката свършва.

Всичкото търсене води до стари документи обясняващи как да ползваме вече не съществуващи плъгини и методи. Firefox ликвидира Java плъгина преди време, защото е твърде голяма дупка.

Необходимо е да се инсталира „оригиналният“ пакет Oracle Java.

Изтегляме актуалната Жава от https://java.com/en/download/linux_manual.jsp

След, като се разкомпресира пакета, се мести на подходящо място:

sudo mkdir -p -v /opt/java/64
sudo mv -v jre1.* /opt/java/64

Правим новото JRE по подразбиране:

sudo update-alternatives --install "/usr/bin/java" "java" "/opt/java/64/jre1.8.0_241/bin/java" 1
sudo update-alternatives --set java /opt/java/64/jre1.8.0_241/bin/java

Добра идея е да ограничим размера на дисковия кеш след това:

/opt/java/64/jre1.8.0_241/bin/ControlPanel

 

И сега, най-ключовия момент – да кажем на icedtea да ползва новата Жава, вместо вградената:

Това е всичко.

Приятно подаване и подписване!

Tags: , , , , , , , , , , ,

Comment Feed

31 Responses

  1. Алекс01.04.2020 @ 1:43 pm

    Здрасти, колега!
    И аз като теб боря тъмната материя на НАП и Митницата. И аз стигнах до момента с изпълнението на JNLP файла. Първоначално пробвах с icedtea, после се сетих, че javaws има във всеки пакет на java-та, просто трябва да се укаже в свойствата на JNLP файла да се изпълнява чрез даден javaws (ако имаш инсталирани повече Java-и),
    За съжаление при мен при опит за подписване се стартира приложението StampIT Local Services, но натам – нищо. Това под Linux Mint 19.1
    Иначе, с Win го нагласих и там работи – стартира се приложението за подпис и т.н.
    МД, за работа с митниците е необходима Java v.7, докато за НАП трябва v.8 – идиотщина някаква.
    Ако имаш някаква идея какво може да се чупи, помагай!

  2. StampIT приложението като се стартира трябва да заеме порт tcp/8090, на който очаква заявки за подписване. Провери дали това се случва или дали порта не е зает от нещо друго:
    netstat -nalp | grep 8090

  3. Алекс02.04.2020 @ 1:47 pm

    То приложението се стартира на порт 8090, проблемът е, че след това не се продължава.
    Под Windows, обаче, слухти на порт 8089. И като заговорихме за портове, се сетих да видя какви заявки има към това приложение. Пуснах един tcpdump и ето резИлтата:

    13:16:33.251551 IP 127.0.0.1.34352 > 127.0.0.1.8089: Flags [S], seq 3899605630, win 65495, options [mss 65495,sackOK,TS val 1239497822 ecr 0,nop,wscale 7], length 0
    13:16:33.251559 IP 127.0.0.1.8089 > 127.0.0.1.34352: Flags [R.], seq 0, ack 3899605631, win 0, length 0
    13:16:33.251897 IP 127.0.0.1.34354 > 127.0.0.1.8089: Flags [S], seq 3609303835, win 65495, options [mss 65495,sackOK,TS val 1239497823 ecr 0,nop,wscale 7], length 0
    13:16:33.251902 IP 127.0.0.1.8089 > 127.0.0.1.34354: Flags [R.], seq 0, ack 3609303836, win 0, length 0

    Нещо прави два опита за връзка на порт 8089 (Flags [S], т.е. SYN-пакет), но тъй като там няма никой, на следващите редове ОС-а връща RESET-и (Flags [R.]). Т.е., възниква въпроса защо под Win StampIT приложението слуша на порт 8089, а под Linux – на порт 8090. А, да – към порт 8090 няма и счупен пакет.

  4. Алекс02.04.2020 @ 10:24 pm

    Да завърша епопеята: днес се свързах с човек, който се занимава професионално с тези неща, беше изключително отзивчив, даже конфигурира лаптопа ми през anydesk.
    Та с две думи – последният Firefox + последната Java и всичко е ОК.
    Голямо благодарско на Елин.

  5. Мариан11.04.2020 @ 3:48 pm

    Аз сложих Oracle-ската JAVA 11 и пак не сработи. Продължавам да получавам същата грешка, която е описана по-горе.

  6. Мариан11.04.2020 @ 5:16 pm

    След известно мъчение го подкарах.
    Сложих jdk1.8.0_241 от Oracle, и копирах файла rt.jar от /lib/jre/rt.jar в /lib/rt.jar, тъй като след-като променях JVM Setting-a на IcedTea излизаше warning относно този файл.
    След това успях да стартирам stampitls-vat.jnlp използвайки javaws.
    javaws stampitls-vat.jnlp

  7. @Мариан, на каква дистрибуция се получава така?

  8. leon11.09.2020 @ 1:56 pm

    Благодаря! Много полезна статия.

  9. victor09.01.2021 @ 2:39 am

    Благодаря и аз! Всичко си тръгна като последвах съветите и копирах rt.jar Статията е светъл лъч в тъмните дебри на вечно недоузрелите неща около подписите, браузърите, Линукс и родните държавни системи. Айде със здраве!

  10. JULIAN22.03.2021 @ 11:31 pm

    Много ми помогна и на мен статията и коментарите.
    В крайна сметка мога да съмъризирам какво направих в Ubuntu 20.04 LTS за да подкарам b-trust подписване:

    Инсталиране на необходимите библиотеки + JRE
    $ sudo apt install openjdk-8-jre-headless libpcsclite-dev libpcsclite1 pcscd icedtea-netx

    Версията, която има нужда BISS приложението за локално подписване е 1.8:
    $ java -version
    openjdk version „1.8.0_282“

    Стартирате десктоп приложението IcedTea Web Control Panel

    и в JVM Settings в полето за „Set JVM for IcedTea-Web“:
    записвате резултата от командата изпълнена в терминала:
    $ update-java-alternatives -l| awk ‘BEGIN { FS = “ “ } ; {print $3}’ |grep 1.8

    при мен това е: /usr/lib/jvm/java-1.8.0-openjdk-amd64
    който се ползва и в следващата команда по-долу.

    Проблема, който се вижда, че неоткрива rt.jar се решава със симлинк:

    $ sudo ln -s /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/lib /usr/lib/jvm/java-1.8.0-openjdk-amd64/lib

    От сайта на b-trust се дърпат:
    B-Trust-Gemalto-Linux-2020-05-28.tar (това е за моя модел usb e-sign drive)
    и
    B-TrustBISS.tar
    Разархивират се в отделни папки и се инсталират от двете папки съответните 2 deb пакета:
    Gemalto_Ubuntu_x64bit_18_04.deb
    btrustbiss.deb

    Последния изисква Java 8, заради JavaFX

    Това работи за мен – като специално сложих Ubuntu 20.04 + Firefox на един usb flash drive единствено за нуждите на електронното подписване, като изрично посочени и поддържани от b-trust (с огромни уговорки и компромиси).

  11. JULIAN22.03.2021 @ 11:55 pm

    Трябва да се инсталират разбира се и:
    Базови удостоверения и Оперативни удостоверения
    https://www.b-trust.bg/services/certification-chains-installation
    Които импортнах в самия Firefox -> Preferences -> Certificates -> View.. -> Import

  12. Много благодаря за RTFM-то! 😀
    Всичко работи на max. Инструкциите са тествани с:
    – Linux Mint 19.2
    – КЕП на stampit
    – Firefox 89.0

    Единствената промяна в синтаксиса беше версията „jre1.8.0_291“ (вместо 241).
    Поздрави!

  13. Любо07.09.2021 @ 7:56 pm

    Здрав да си, приятелю!

  14. Георги10.09.2021 @ 8:02 pm

    Велик си !

    Тръгна от раз на
    Debian11
    Firefox 78.14.0esr
    KEP от Инфонотари и Siemens карта.
    Единствения проблем е, че ме пита по 3 пъти за PIN кода, ама това явно си е проблем на библиотеката им на Инфонотари.

  15. Георги10.09.2021 @ 8:24 pm

    Ама наистина си ВЕЛИК!!!

    Пробвах да настроя и Chromium-a и чудеса работи. (под Windows не успях)
    Debian11
    Chromium 90.0.4430.212
    KEP от Инфонотари и Siemens карта.
    И пак единствения проблем е, че ме пита по 3 пъти за PIN кода, ама това явно си е проблем на библиотеката им на Инфонотари.

  16. Георги13.09.2021 @ 5:04 pm

    Днес ми потрябва и B-Trust BISS. Изтеглих го от сайта им инсталирах го и…. отваря ми се прозорче 10*16 пиксела със следи от BISS в него – явно работи ама не се вижда нищо.
    И като зазгледай – те пак на Java и то стара. Та:
    Във файла /bin/btrust_biss
    на 3-тия ред:
    nohup /usr/share/btrust_biss/jre1.8.0-202/ и т.н. пътечка към някаква си тяхна инсталация дето не работи.
    Просто заменяте „/usr/share/btrust_biss/jre1.8.0-202“ с пътя към Java-та която сте инсталирали по гореописания начин.
    И чудесата стават:)

  17. Иван П.10.11.2021 @ 9:09 am

    Мерси много!
    Извинявам се за неграмотност. Руснак съм.
    Всичко работи добре.
    Ubuntu Focal (Ubuntu 20.04.3 LTS)
    jre1.8.0_311
    firefox-94.0+build3-0ubuntu0.20.04.1

    За стартирате IcedTea-Web Control Panel въведете команда
    itweb-settings

  18. Михаил Ковачев07.12.2021 @ 9:04 pm

    Аз направих сичко и проработи докато не натиснах бутона формиране на декларацията. Там получих съобщението:

    Моля изберете път към файлове deklar.txt, pokupki.txt, prodagbi.txt

  19. Георги13.01.2022 @ 12:31 pm

    Моля изберете път към файлове deklar.txt, pokupki.txt, prodagbi.txt

    Понеже си на Linux=UTF8 главни и малки букви имат значение, докато в DOS си на 7bit ASCII….
    Преименувай трита файла да са с малки букви

  20. Гого19.02.2022 @ 11:29 am

    Да споделя и аз решен проблем. Първо благодаря на всички, горните постове много ми помогнаха. Направих всичко НАП тръгна, но Търговския даваше “ Не са намерени сертификати“. Погледнах е лога на BISS.
    NFO 2022-02-19 11:08:11 | class: b | method: a | row: ? | value: ATR3BF81300008131FE454A434F5076323431B7
    INFO 2022-02-19 11:08:11 | class: b | method: a | row: ? | value: Main dir: /usr/share/btrust_biss/p11_libs/
    INFO 2022-02-19 11:08:11 | class: a | method: c | row: ? | value: Add library: /usr/share/btrust_biss/p11_libs/libcvP11.so
    ERROR 2022-02-19 11:08:11 | class: a | method: a | row: ? | value: /usr/share/btrust_biss/p11_libs/libcvP11.so: неправилен ELF клас: ELFCLASS64
    ERROR 2022-02-19 11:08:11 | class: c | method: run | row: ? | value: error.no-certs-found

    замених /usr/share/btrust_biss/p11_libs/libcvP11.so със libcmP11.so изтеглено от сайта на ИО, като преиминувах на libcvP11.so и нещата се получиха.

  21. Веко19.04.2022 @ 10:38 pm

    Зравейте ,
    от доста време се опитвам да пусна ДДС през линукс и все не се получава.
    Само споделям, че всичко това работи при мен с подпис от б-тръст Gemalto
    на Ubuntu 16.04 , 20.04 и java-8-openjdk-amd64 , по скоро проблема ми беше в главните букви в името на файловете.

  22. РАДО14.08.2022 @ 11:27 pm

    Здравейте,
    и при мен има проблем с пускането на ДДС.По точно с VIES файла.Текста,който е на кирилица показва само въпросителни
    �������� ������ ������
    Енкодинга е
    file -i VIES.txt
    VIES.txt: text/plain; charset=iso-8859-1
    Като го конвертирам в UTF8 и ми дава фатална грешка.
    Може ли това да се оправи?

    Текста на латиница излиза коректно.

  23. Жоро19.10.2022 @ 6:03 pm

    Привет, да добавя към дискусията за тези, които се мъчат със stampit апликацията.
    Подкарах я с jdk1.8.0_241 + Open Web Stack 1.6.0
    Командата е:
    javaws stampitls.jnlp

    При подпис на документ ми даваше, че не намира сертификата от B-trust устройството.

    DEBUG: No connected cards found. <- лога на stampit

    трябва да изберете pkcs11.so библиотеката, която е пакетирана със софтуера на b-trust, не тази от ОС-а.
    Би трябвало да се намира в /opt/btrust… папката Ви ( с най-новата версия на б-тръст софтуера за подписване на документи).
    libcmP11.so <- името на файла или нещо подобно.

  24. Emba23.05.2023 @ 2:24 pm

    Тук има полезни неща за НАП, КЕП & B-Trust, затова ще добавя нещо, което днес научих.

    За да подкарате KEP (StampIT) + B-Trust BISS на MacOS трябва сертификатите – 2 основни на StampIT и всичките на B-Trust – да ги импортирате в Keychain > System и да им дадете „Aways Trust“.

    В противен случай, когато BISS се опитва да взима сертификата от картата пропада с грешка (NPE).

  25. Elena16.08.2023 @ 6:21 pm

    Здравейте,

    Дали някой има идея или се е сблъсквал с следния проблем? Преборих се уж и вече успявам да подпиша файла с КЕП (stampIT) с javaws и получвам файл с разширение .p7s , но когато сео питам да го кача към Агенцията по вписвания получавам грешка : „Невалиден подпис“ , видях някъде официален съвет от някоя институция за изтриване на кеш, направих го :), разбира се проблемът си стои. Започвам да се замислям да си купя един малък лаптоп с windows…с две думи отчаяна съм.

  26. @Elena, това „отделен“ поспис и най-често той се скапва поради редакция на подписания фаил. Дори преименуване на оригиналния файл, за който се отнася подписа го прави невалиден.

    За проверка може да се подпише произволен фаил и да се провери на друг компютър, дали подписа е коректен.

  27. Elena17.08.2023 @ 10:20 am

    Привет и благодаря, от АВ( агенция по вписванията) изискват файлът, който е .pdf , да бъде подписан и качен в .p7s или .p7m , при опит за качване на оригиналния им .pdf файл грешката е неподържан формат, а при .p7s е невалиден подпис, днес получих отговор от АВ , че “ схемата за подписване следва да е Attached Signature.“ и ще расъждавам над него. Аз използвам https://sign.uslugi.io/mac.html и javaws да преобразувам .jnlp файла в .p7s

  28. Elena17.08.2023 @ 12:47 pm

    Само да допълня, че https://sign.uslugi.io/mac.html е Онлайн модул за подписване на файлове (Detached p7s формат) , т.е търся начин за Attached подпис.

  29. Elena17.08.2023 @ 8:30 pm

    В случай , че е от полза за някого – InfoNotary e-Doc Signer го има и за линукс и предлага и Attached и Detached формати.

  30. Svetla15.01.2024 @ 7:51 pm

    Статията и коментарите са много полезни.
    Аз имах проблем с главните букви на ДДС файловете.
    Наистина имат значение и след като ги преименувах само с малки букви проблема се реши и успях да подам СД по ДДС в НАП. Благодаря!

  31. Малко помощ и от мен:
    1. Да, StampIt използва порт 8090 и ако се използва от друга програма, която използва същия порт, може да се получи конфликт.
    2. Сайта на НАП се опитва да рекуестне StampIt, но поради горната причина не може да го направи. Възможно е и да се блокира рекуеста от някакъв антивирусен софтуер или фаеруол. При мен се случи с Brave браузъра, който блокираше рекуеста към StampIt, но след като unregister servicewoker-a на сайта на НАП, всичко се оправи.
    3. Също така, ако се използва VPN, може да се получи конфликт с StampIt, защото VPN-а може да използва същия порт.
    4. Установих, че StampIt не работи със старите версии на Java. При мен работи само с Java 8.0.271. Ако се използва по-нова версия на Java, може да се получи грешка при стартиране на StampIt. Как се инсталира е описано тук – https://linux.how2shout.com/how-to-install-oracle-java-8-64-bit-ubuntu-22-04-20-04-lts/, а по-горе е обяснено как да се направи дефолтна версия за IcedTea-Web.
    5. Също така, ако се използва Ubuntu, може да се наложи да се инсталира pkcs11-tool
    6. Стартирайте сваления jlnp файл с двоен клик, а не с командата javaws, защото при мен се получава грешка.
    7. След като се стартира StampIt, трябва да се регистрира със сертификат, който се използва за подписване на документи. Сертификатът трябва да се намери във файловата система и да се избере. След това трябва да се въведе паролата за сертификата. След като се регистрира, StampIt трябва да се рестартира. Пътят до pkcs11 library трябва да се намери автоматично, но ако не се намери, трябва да се въведе ръчно. Пътят е /usr/lib/libeTPkcs11.so



Some HTML is OK

or, reply to this post via trackback.