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

30 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

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



Some HTML is OK

or, reply to this post via trackback.