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

от e-Docs.bg Support на 22.10.2010 01:06
В аплета е добавена възможност за въвеждане на път към драйвера за картата на подписа. В случай че не е намерен автоматично, се показва диалог в който може да се укаже мястото където е инсталиран драйверът.
RE: Подписване на електронни фактури и електронни документи
от Димитър Гигов на 28.10.2010 09:33
Java аплета не може да инциоализира под linux картата работи с opensc , едва ли съм сбъркал в настройките защото java аплета на Търговския регистър работи.
RE: Подписване на електронни фактури и електронни документи
от e-Docs.bg Support на 28.10.2010 11:54
Димитър Гигов
Java аплета не може да инциоализира под linux картата работи с opensc , едва ли съм сбъркал в настройките защото java аплета на Търговския регистър работи.


Здравейте!

Благодаря за информацията!
Java аплета за подписване на документи е тестван под Linux и би трябвало да работи (ние самите работим изцяло под Linux). Моля, посочете допълнителна информация, за да имаме възможност да разследваме и отстраним грешката:
- дистрибуция
- архитектура (32bit / 64bit)
- browser с който тествате
- версия на аплета (най-отдолу на прозореца, трябва да е 1.04).
- дава ли някакво съобщение за грешка в диалог (ако въобще зарежда applet-а).
- по възможност, включете подробния log на Java console (напр. в Ubuntu -> System -> Preferences -> Sun Java Plugin Policy Control -> Advanced -> Java console -> Show console) и ни изпратете traceback-а на
грешката.
RE: Подписване на електронни фактури и електронни документи
от Росен Владимиров на 15.08.2012 15:38
С Ubuntu 64 TLS 12.04 съм Java аплета не иска да се зареди при подписването, появява се прозорец да продължа ли скрипта и увисва. Не мога да разбера къде е проблема. Имам два подписа с opensc и работят с повечето приложения, за съжеление с нито едно българско web-базирано, като митниците и нап-а, с банките си работят.
RE: Подписване на електронни фактури и електронни документи
от e-Docs.bg Support на 25.08.2012 17:07
Моля, последвайте инструкциите в горния пост за да можем да разследваме причините, поради които не можете да подписвате документи.

Обръщам внимание, че технологията по която се подписват документите в www.e-Docs.bg е различна от технологията, с която се работи в електронните банкирания (там най-често става дума за достъп до HTTPS чрез клиентски сертификати, което е коренно различно от подписване на файл с електронен подпис).

Сравнението със системи на администрацията не е адекватно, тъй като там най-често причината за невъзможност за работа под Linux е използване на ActiveX - технология на Microsoft, работеща само с Internet Explorer.

Единствено изключение прави системата на Търговския регистър, където се използва Java applet (както в www.e-Docs.bg) и по принцип е предвидено да може да се ползва и под Linux (макар и напоследък собственият ни опит да показва друго).
RE: Подписване на електронни фактури и електронни документи
от Росен Владимиров на 13.09.2012 14:44
Открих къде е проблема, че не зарежда аплета. Решението е инсталация на oracle Java 7.
Но сега има друг проблем не вижда сертификатите, защото имам два инсталирани подписа, единият е на crismatic а другия на SiemesOS 4
RE: Подписване на електронни фактури и електронни документи
от Камен Доков на 01.10.2012 14:16
И при мен аплетът не работи както се очаква.
Ползвам Gentoo x86-64 с firefox и chromium.Сигурен съм, че подписът и четецът са инсталирани правилно, защото си ползвам банкиренето с тях.
1. С open-java (icedtea) не работи въобще, специално заради този аплет инсталирах 50мб оракъл джава! ( моля направете го да работи и с open-java и ibm-java).
2.С оракъл се зарежда, иска ми пин и после извежда грешка, че не може да се логне поради грешен пин (сигурен съм, че пинът е верен)

на тази снимка може да видите и версията на аплета

3.В крайна сметка трябваше да инсталирам вин на виртуална машина за да си подпиша фактурата!
Моля направете този аплет да работи предсказуемо и под Линукс!

Камен Доков

EDIT:

И освен това не разбирам: Защо е необходимо този джава аплет да си взаимодейства директно с хардуера, при положение, че вече имам конфигуриран браузър, който работи отлично? Защо този аплет не ползва ресурсите на браузъра?
RE: Подписване на електронни фактури и електронни документи
от e-Docs.bg Support на 09.11.2012 12:03

Картинката е красива, но не е много полезна
По-горе в поста пише:
- по възможност, включете подробния log на Java console (например в Ubuntu -> System -> Preferences -> Sun Java Plugin Policy Control -> Advanced -> Java console -> Show console) и ни изпратете traceback-а на грешката.
Искаме да помогнем и да подобрим системата. Ако действително имате желание да ползвате www.e-Docs.bg за създаване и изпращане на Електронни фактури, просто изпратете traceback-а на грешката (може да е по email или чрез формата за контакти).

Камен Доков
И освен това не разбирам: Защо е необходимо този джава аплет да си взаимодейства директно с хардуера, при положение, че вече имам конфигуриран браузър, който работи отлично? Защо този аплет не ползва ресурсите на браузъра?

Що се отнася до това:
Много пъти вече сме обяснявали и в този форум, а в документацията също може да се прочете!
Чрез www.e-Docs.bg се създават Електронни фактури и Електронни документи (подписани с КЕП). Браузърът сам не може да подпише документ - ползва допълнителни (външни) технологии, които (независимо дали са на Adobe, Java ...) извличат подписа директно от устройството и подписват дадения им файл. Смисълът на подписите, качени на специални устройства (доколкото го има, но такъв е закона в БГ - на други места не е така - подписът е файл и притежателят му си отговаря за неговото съхранение) е те да не могат да се "разнасят наляво надясно", прехвърлят, предават, копират и т.н. извън устройството.
Аналогията с банковите системи е абсолютно безсмислена (както сме писали доста пъти - включително и по-горе в този пост). Там подписът се ползва за изграждане на подсигурен канал със съответната система и "тя вярва на всичко, минало през този канал". Но там няма електронни документи, подписани с КЕП, които да значат нещо извън контекста на конкретната комуникация. При подписаните с КЕП файлове не е така - всеки може да провери от кого са подписани и дали са били променяни след създаването си, независимо на кого и къде са изпратени - това може да стане по различни начини (включително с различни софтуери) и абсолютно извън контекста на определена система или двустранна комуникация.
RE: Подписване на електронни фактури и електронни документи
от Камен Доков на 03.04.2013 15:11
Издадох още една фактура.
Това е от джава конзолата


CacheEntry[https://online.e-docs.bg/signer/jnlp/launch.jnlp/6]: updateAvailable=false,lastModified=Thu Jan 01 02:00:00 EET 1970,length=-1
CacheEntry[https://online.e-docs.bg/signer/jnlp/eSigner.1.06.jar]: updateAvailable=true,lastModified=Thu Mar 08 10:43:17 EET 2012,length=4446156
	Match: beginTraversal
Match: digest selected JREDesc: JREDesc[version 1.5+, heap=-1--1, args=-Djava.security.policy=applet.policy, href=null, sel=false, null, null], JREInfo: JREInfo for index 0:
    platform is: 1.7
    product is: 1.7.0_17
    location is: http://java.sun.com/products/autodl/j2se
    path is: /opt/oracle-jre-bin-1.7.0.17/bin/java
    args is: 
    native platform is: Linux, amd64 [ x86_64, 64bit ]
    JavaFX runtime is: JavaFX 2.2.7 found at /opt/oracle-jre-bin-1.7.0.17/
    enabled is: true
    registered is: false
    system is: true

	Match: ignoring maxHeap: -1
	Match: ignoring InitHeap: -1
	Match: digesting vmargs: -Djava.security.policy=applet.policy
	Match: digested vmargs: [JVMParameters: isSecure: false, args: -Djava.security.policy=applet.policy]
	Match: JVM args after accumulation: [JVMParameters: isSecure: false, args: -Djava.security.policy=applet.policy]
	Match: digest LaunchDesc: https://online.e-docs.bg/signer/jnlp/launch.jnlp/6
	Match: digest properties: []
	Match: JVM args: [JVMParameters: isSecure: false, args: -Djava.security.policy=applet.policy]
	Match: endTraversal ..
	Match: JVM args final: -Djava.security.policy=applet.policy
	Match: Running JREInfo Version    match: 1.7.0.17 == 1.7.0.17
	 Match: Running JVM args match the secure subset: have:<>  satisfy want:<-Djava.security.policy=applet.policy>
Mar 29, 2013 10:42:42 AM net.computationalsystems.signer.providers.PKCS11Provider loadPKCS11Library
INFO: Using /usr/lib/opensc-pkcs11.so
ProviderName:SunPKCS11-SmartCard!
Successfully registered provider
Mar 29, 2013 10:42:46 AM net.computationalsystems.signer.ui.SigningApplet showErrorMessage
SEVERE: null
java.security.KeyStoreException: PKCS11 not found
	at java.security.KeyStore.getInstance(Unknown Source)
	at net.computationalsystems.signer.providers.PKCS11Provider.login(PKCS11Provider.java:141)
	at net.computationalsystems.signer.ui.SigningApplet.loadAvailableCerts(SigningApplet.java:152)
	at net.computationalsystems.signer.ui.SigningApplet.PINButtonActionPerformed(SigningApplet.java:652)
	at net.computationalsystems.signer.ui.SigningApplet.access$100(SigningApplet.java:35)
	at net.computationalsystems.signer.ui.SigningApplet$2.actionPerformed(SigningApplet.java:399)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$200(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.security.NoSuchAlgorithmException: PKCS11 KeyStore not available
	at sun.security.jca.GetInstance.getInstance(Unknown Source)
	at java.security.Security.getImpl(Unknown Source)
	... 41 more




Как да го направя да работи?
RE: Подписване на електронни фактури и електронни документи
от Камен Доков на 26.06.2013 14:46
Ето така се прави Оракъл джава да работи с вашия аплет за подпис на документи под Линукс:
"Камен Доков"
You need to create 1 file:

/opt/openSC/openscpkcs11-solaris.cfg


name = OpenSC
description = SunPKCS11 w/ OpenSC Smart card Framework
library = /usr/lib64/opensc-pkcs11.so
slot=1

The "slot" part in /opt/openSC/openscpkcs11-solaris.cfg is absolutely essential !

and modify another file:

/opt/oracle-jre-bin-1.7.0.25/lib/security/java.security

#
# security.provider.1=sun.security.provider.Sun
#
# (The number 1 is used for the default provider.)
#
# Note: Providers can be dynamically registered instead by calls to
# either the addProvider or insertProviderAt method in the Security
# class.

#
# List of providers and their preference orders (see above):
#
security.provider.1=sun.security.pkcs11.SunPKCS11 /opt/openSC/openscpkcs11-solaris.cfg
security.provider.2=sun.security.provider.Sun
security.provider.3=sun.security.rsa.SunRsaSign
security.provider.4=sun.security.ec.SunEC
security.provider.5=com.sun.net.ssl.internal.ssl.Provider
security.provider.6=com.sun.crypto.provider.SunJCE
security.provider.7=sun.security.jgss.SunProvider
security.provider.8=com.sun.security.sasl.Provider
security.provider.9=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.10=sun.security.smartcardio.SunPCSC
#security.provider.10=sun.security.pkcs11.SunPKCS11 /opt/openSC/openscpkcs11-solaris.cfg
#security.provider.10=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg

#
# Select the source of seed data for SecureRandom. By default an
# attempt is made to use the entropy gathering device specified by
# the securerandom.source property. If an exception occurs when
# accessing the URL then the traditional system/thread activity
# algorithm is used.
#
.
.
.

It`s absolutely essential for the red line то be at position1


Configuring a Smart card as a Java Keystore (using OpenSC Framework)

The following example shows how to configure OpenSC supported smart card as a Java keystore and list the certificates using the keytool utility. The OpenSC framework can be downloaded from http://www.opensc.org.
Add the OpenSC PKCS#11 module as the keystore provider in java.security file located at $JAVA_HOME/jre/lib/security/java.security.
security.provider.1=sun.security.pkcs11.SunPKCS11 /opt/openSC/openscpkcs11-solaris.cfg
Create the OpenSC PKCS#11 configuration file. For example, the openscpkcs11-solaris.cfg looks like as follows:
name = OpenSC-PKCS11
description = SunPKCS11 w/ OpenSC Smart card Framework
library = /usr/lib/pkcs11/opensc-pkcs11.so
With the above settings, it is possible to use the smart card as a keystore and retrieve information about the certificates from your Smartcard. For example, you may use the keytool utility to list certificate entries from a smart card:
$ keytool -keystore NONE -storetype PKCS11 -providerName SunPKCS11-OpenSC -list -v



better

name = OpenSC

The provider name seems SunPKCS11-[name]

Thanks.


the slot is not set in java but rather in the pkcs11 config file (where the name and library are specified). see the pkcs#11 reference guide.

I had a similar problem with the recent Mac OS X 10.6.4 java. the java.security file comes with a SunPKCS11 provider in position 1. although I think it should not be the case,
adding a second SunPKCS11 provider at the end of the list (at least dynamically) was not working and KeyStore.getInstance("PKCS11", provider) would throw the PKCS11 not found exception. replacing the original SunPKCS11 provider at position 1 by the new provider fixed the problem...



test it with :

keytool -keystore NONE -storetype PKCS11 -providerName SunPKCS11-OpenSC -list -v




За съжаление не получих тази помощ от вас!
За да коментирате публикацията, трябва да сте влезли в профила си. Можете да се регистрирате от тук.