error při použití TSA a spuštěním skriptem

146 views
Skip to first unread message

Michal VEčeře

unread,
Mar 28, 2020, 2:33:23 PM3/28/20
to JSignPdf
Dobrý den,
pomocí skriptu spouštím spokojeně JSignPdf už delší čas, ale na začátku ledna, kdy postsignum nasadilo nové SSL certifikáty mi JSignPdf vyhazuje níže vloženou hlášku.
Samostatný el. podpis bez problému, chyba pouze s TSA a pouze při spuštění skriptem. Když spustím JSignPdf samostatně, tak to funguje!
Netušíte kde by mohl být zakopaný pes?
Děkuji Vám sousede(?)
Michal VEčeře z Drásova a z Litomyšle :-)

JSignPdf 1.6.4
příkaz ve skriptu primitivní "run(C:\Program Files (x86)\JSignPdf\JSignPdf.exe)", případně přes CMD ""java.exe -jar "C:\Program Files (x86)\JSignPdf\JSignPdf.jar" ""

INFO  Spouštím JSignPdf
INFO  Kontroluji cesty k vstupnímu a výstupnímu PDF souboru.
INFO  Načítám aliasy klíčů
INFO  Použitý privátní klíč: Ing. Michal Veèeøe
INFO  Načítám soukromý klíč z úložiště
INFO  Načítám certifikáty
INFO  Otevírám vstupní PDF: D:\00\45.pdf
INFO  Vytvářím výstupní PDF: D:\00\45_signed\45.pdf
INFO  Vytvářím podpis
INFO  Nastavuji úroveň certifikace
INFO  Zpracovávám (může to chvíli zabrat) ...
INFO  Vytváření klienta pro TSA.
INFO  Nastavuji hešovací algoritmus časového razítka: SHA-1
ERROR Během zpracování nastal problém
ExceptionConverter: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1964)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:328)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:322)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1614)
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1052)
at sun.security.ssl.Handshaker.process_record(Handshaker.java:987)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1072)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1397)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1334)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1309)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:259)
at com.lowagie.text.pdf.TSAClientBouncyCastle.getTSAResponse(Unknown Source)
at com.lowagie.text.pdf.TSAClientBouncyCastle.getTimeStampToken(Unknown Source)
at com.lowagie.text.pdf.TSAClientBouncyCastle.getTimeStampToken(Unknown Source)
at com.lowagie.text.pdf.PdfPKCS7.getEncodedPKCS7(Unknown Source)
at net.sf.jsignpdf.SignerLogic.signFile(SignerLogic.java:414)
at net.sf.jsignpdf.SignerLogic.run(SignerLogic.java:115)
at java.lang.Thread.run(Thread.java:748)
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:397)
at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:302)
at sun.security.validator.Validator.validate(Validator.java:262)
at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:105)
at net.sf.jsignpdf.ssl.DynamicX509TrustManager.checkServerTrusted(DynamicX509TrustManager.java:111)
at sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(SSLContextImpl.java:992)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1596)
... 19 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:392)
... 27 more
INFO  Konec: Vytváření podpisu selhalo

Josef Cacek

unread,
Mar 29, 2020, 3:48:08 AM3/29/20
to JSignPdf forum
Zdravím sousede,

myslím si, že problém bude s pracovním adresářem. Je důležité, aby
pracovní adresář byl adresářem aplikace JSignPdf, protože při načítání
konfiguračních souborů jsou použity relativní cesty.

Kdyby změna adresáře nepomohla, použijte utilitku InstallCert.jar
(součást JSignPdf instalace) k nainstalování kořenového certifikátu
PostSignum do seznamu CA v Javě.

java -jar InstallCert.jar
InstallCert - Install CA certificate to Java Keystore
=====================================================
Enter hostname or IP address: tsa.postsignum.cz
Enter port number [443]: 444
Enter keystore password [changeit]:
Loading KeyStore
/home/kwart/java/zulu11.35.15-ca-jdk11.0.5-linux_x64/lib/security/cacerts...
Opening connection to tsa.postsignum.cz:444...
Starting SSL handshake...

Certificate is not yet trusted.

Server sent 3 certificate(s):

1 Subject SERIALNUMBER=D7464, CN=TSA PostSignum, OU=PostSignum
Services, O="Česká pošta, s.p.", OID.2.5.4.97=NTRCZ-47114983, L=Praha,
C=CZ
Issuer CN=PostSignum Public CA 5, O="Česká pošta, s.p.",
OID.2.5.4.97=NTRCZ-47114983, C=CZ
sha1 89 6e d6 d5 2f 2b 76 d1 99 b6 9d 41 3a e8 8e 71 57 c2 16 09
md5 96 57 63 f5 fa e2 cc 6d 61 2b d2 5b 8b 69 14 bb

2 Subject CN=PostSignum Public CA 5, O="Česká pošta, s.p.",
OID.2.5.4.97=NTRCZ-47114983, C=CZ
Issuer CN=PostSignum Root QCA 4, O="Česká pošta, s.p.",
OID.2.5.4.97=NTRCZ-47114983, C=CZ
sha1 a6 14 7a 88 43 32 78 d9 ab 1e 65 5b b8 ba 31 5f ec 46 40 d2
md5 d5 b4 ae 24 0d 0d 5a d4 1a 83 55 52 54 31 1c e7

3 Subject CN=PostSignum Root QCA 4, O="Česká pošta, s.p.",
OID.2.5.4.97=NTRCZ-47114983, C=CZ
Issuer CN=PostSignum Root QCA 4, O="Česká pošta, s.p.",
OID.2.5.4.97=NTRCZ-47114983, C=CZ
sha1 aa 40 d2 57 9b a8 24 24 cd 27 71 9b 1d 6b 1f 35 71 73 80 99
md5 6a 10 ba 73 61 5d 4b 6e d5 bc c9 cc 98 1a be 77

Enter certificate to add to trusted keystore or 'q' to quit [1]: 3
Creating keystore backup
Installing certificate...
...

-- jc

so 28. 3. 2020 v 19:33 odesílatel Michal VEčeře
<michal...@gmail.com> napsal:
> --
> You received this message because you are subscribed to the Google Groups "JSignPdf" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to jsignpdf+u...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/jsignpdf/d31c0647-1629-4f4a-b8a6-be11f1eefd31%40googlegroups.com.

Michal VEčeře

unread,
Mar 29, 2020, 11:40:30 AM3/29/20
to JSignPdf
Dobrý den,
moc děkuji, přesně takovéto nasměrování jsem potřeboval! Vaše odpověď mě, jako laika, samozřejmě nejprve "vyděsila", ale teď už mi to šlape.
Moc děkuji.
(kdybyste mi napsal na michal...@gmail.com kde v té sousední dědině bydlíte, rád Vám nechám u dveří (dobře vydezinfikované :-) ) víno).

Přeji hezký den, Michal VEčeře

Tomáš Klička

unread,
Apr 22, 2020, 2:50:52 AM4/22/20
to JSignPdf
Dobrý den.

Mám (pravděpodobně) stejný problém, ale níže uvedený postup (přidání tsa.postsignum.cz) mi nepomohl. Může to být tím, že zatím jedu na testovacích razítkách (předpokládám, že by to tím být nemělo)? Nebo příp. kde může být problém (z GUI vše funguje)? V .JSignPdf1 jsou v url 2x navíc backslashe (https\://demo.postsignum.cz\:444/DEMO-TSS/HttpTspServer/), ale to by snad nemělo vadit (že to mám v cmd bez nich)? Díky za pomoc.

Cmd:
java -jar "c:\Program Files (x86)\JSignPdf\JSignPdf.jar" -cl CERTIFIED_NO_CHANGES_ALLOWED -d "d:\w" -kst PKCS12 -ksf "d:\test.pfx" -ksp HesloVeslo -ta PASSWORD -ts "https://demo.postsignum.cz:444/DEMO-TSS/HttpTspServer/" -tsh SHA-256 -tsu "demoTSA" -tsp "demoTSA2010" -llx 290 -lly 109 -urx 536 -ury 24 --l2-text "Podepsano PsC ${signer} ${timestamp}" -V "d:\Dekurz_test.pdf"

Log:
WARN  net.sf.jsignpdf.utils.PropertyProvider$ProperyProviderException: Property file conf\conf.properties doesn't exist.
INFO  Kontroluji cesty k vstupnÝmu a vřstupnÝmu PDF souboru.
INFO  NaŔÝtßm aliasy klÝŔ¨
INFO  Pou×itř privßtnÝ klÝŔ: isignum 20200219-101834
INFO  NaŔÝtßm soukromř klÝŔ z ˙lo×iÜtý
INFO  NaŔÝtßm certifikßty
INFO  OtevÝrßm vstupnÝ PDF: d:\Dekurz_test.pdf
INFO  Vytvß°Ým vřstupnÝ PDF: d:/w/Dekurz_test_signed.pdf
INFO  Vytvß°Ým podpis
INFO  Nastavuji ˙rove˛ certifikace
INFO  Konfiguruji viditelnř podpis
INFO  Pou×itÝ pouze vrstev doporuŔenřch v Acrobatu 6: true
INFO  Nastavuji mý°Ýtko obrßzku na pozadÝ
INFO  Nastavuji text vrstvy 2 (popis)
INFO  Nastavuji text vrstvy 4 (status)
INFO  Nastavuji typ zobrazenÝ
INFO  Vytvß°Ým viditelnř podpis
INFO  Zpracovßvßm (m¨×e to chvÝli zabrat) ...
INFO  Vytvß°enÝ klienta pro TSA.
INFO  Nastavuji heÜovacÝ algoritmus ŔasovÚho razÝtka: SHA-256
ERROR Býhem zpracovßnÝ nastal problÚm

ExceptionConverter: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        at sun.security.ssl.Alerts.getSSLException(Unknown Source)
        at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source)
        at sun.security.ssl.Handshaker.fatalSE(Unknown Source)
        at sun.security.ssl.Handshaker.fatalSE(Unknown Source)
        at sun.security.ssl.ClientHandshaker.serverCertificate(Unknown Source)
        at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source)
        at sun.security.ssl.Handshaker.processLoop(Unknown Source)
        at sun.security.ssl.Handshaker.process_record(Unknown Source)
        at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
        at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
        at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
        at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
        at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
        at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(Unknown Source)
        at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source)
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(Unknown Source)

        at com.lowagie.text.pdf.TSAClientBouncyCastle.getTSAResponse(Unknown Source)
        at com.lowagie.text.pdf.TSAClientBouncyCastle.getTimeStampToken(Unknown Source)
        at com.lowagie.text.pdf.TSAClientBouncyCastle.getTimeStampToken(Unknown Source)
        at com.lowagie.text.pdf.PdfPKCS7.getEncodedPKCS7(Unknown Source)
        at net.sf.jsignpdf.SignerLogic.signFile(SignerLogic.java:414)
        at net.sf.jsignpdf.Signer.signFiles(Signer.java:242)
        at net.sf.jsignpdf.Signer.main(Signer.java:137)

Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        at sun.security.validator.PKIXValidator.doBuild(Unknown Source)
        at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
        at sun.security.validator.Validator.validate(Unknown Source)
        at sun.security.ssl.X509TrustManagerImpl.validate(Unknown Source)
        at sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source)
        at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
        at net.sf.jsignpdf.ssl.DynamicX509TrustManager.checkServerTrusted(DynamicX509TrustManager.java:111)
        at sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(Unknown Source)
        ... 20 more

Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        at sun.security.provider.certpath.SunCertPathBuilder.build(Unknown Source)
        at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
        at java.security.cert.CertPathBuilder.build(Unknown Source)
        ... 28 more
INFO  Konec: Vytvß°enÝ podpisu selhalo


Dne neděle 29. března 2020 9:48:08 UTC+2 Josef Cacek napsal(a):
> To unsubscribe from this group and stop receiving emails from it, send an email to jsig...@googlegroups.com.

Josef Cacek

unread,
Apr 22, 2020, 5:10:57 AM4/22/20
to JSignPdf forum
Stejná odpověď jako v minulém případě :)
Pracovní adresář musí být adresářem aplikace. Cesty ke konfiguračním souborům jsou relativní.
Ve Vašem případě tedy "c:\Program Files (x86)\JSignPdf\"
-- jc


st 22. 4. 2020 v 8:50 odesílatel Tomáš Klička <tom.k...@gmail.com> napsal:
To unsubscribe from this group and stop receiving emails from it, send an email to jsignpdf+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jsignpdf/c677f64a-4fc4-4a40-a84b-d90c1ef1d8ac%40googlegroups.com.

Tomáš Klička

unread,
Apr 22, 2020, 5:41:46 AM4/22/20
to JSignPdf
Díky - teď mi to teprve došlo.
Vyřešil jsem to tak (abych nemusel čarovat v ProgramFiles), že jsem nakopíroval soubory cacerts a conf.properties s jejich relativními cestami do mé pracovní složky a vše se rozjelo. Díky za pomoc.
T. Klička
Reply all
Reply to author
Forward
0 new messages