PHP fiskalizator

Jun 10 at 6:30 PM
Edited Jun 18 at 6:05 PM
Da li možda neko koristi ovo rješenje. https://github.com/grizwako/Fiskalizator_PHP

Nakon promjene testnog certifikata 07.06.2016 na testnom serveru, više ne radi fiskalzacija.

Pogreška koja se javlja
CODECURL: SSL certificate problem: unable to get local issuer certificate.

Aplikacija koristi ovaj cerifikat ssl_cis.crt. Gdje mogu skinuti novi certifikat.?

Hvala.
Jun 10 at 6:39 PM
Opet si otvorio novu temu :D

Jesi instalirao ove certifikate?

TEXT
TEXT

Ovo su produkcijski, ti trebaju produkcijski ili demo?
Jun 10 at 6:43 PM
Oprosti na otvaranju nove teme. Za sada mi trebaju demo.
Jun 10 at 6:47 PM
Edited Jun 18 at 6:06 PM
U gore priloženoj aplikaciji se čita certifikat na serveru.
Jun 10 at 6:53 PM
Nisam više 100% jer sam davno radio sam tim fiskalizatorom šta spominješ. Mislim da ga nigdje ne instaliraš. Vjerojatno ti je problem u nazivu.

Dakle, kako si ti napisao, koristiš dva certifikata sa nazivima:

ssl_cis.crt
cis_xmlvalidate.crt

probaj skinut ova dva:

TEXT
TEXT

i preimenuješ ih u naziv koji se čita u php code-u.

p.s. ponavljam, bubam napamet, ali vrlo vjerojatno je tu negdje caka :)
Jun 10 at 6:57 PM
Bacio sam oko na kod, evo ti jednog naziva i lokacije:
private $caCert = 'certificates/demo/ssl_cis.crt';
Jun 10 at 6:59 PM
A koristiš ti to rješenje na nekom lokalnom php serveru ili na nekom hostingu?
Jun 10 at 7:02 PM
Probao sam to već pa ne radi. Hvala ti na trudu.
Jun 10 at 7:03 PM
Na wampu
Jun 10 at 10:41 PM
Problem riješen, veliko hvala svima koji su htjeli pomoći. Možda nije najsretnije riješenje ali radi. Ako bude nekom trebalo evo.

U datoteci Cis_service.php ispod linije 54 dodati
    curl_setopt($conn, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($conn, CURLOPT_SSL_VERIFYPEER, 0);
Jun 14 at 6:33 PM
Edited Jun 14 at 6:35 PM
josipj wrote:
Problem riješen, veliko hvala svima koji su htjeli pomoći. Možda nije najsretnije riješenje ali radi. Ako bude nekom trebalo evo.

U datoteci Cis_service.php ispod linije 54 dodati
    curl_setopt($conn, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($conn, CURLOPT_SSL_VERIFYPEER, 0);
Josipj,
samo da napomenem da navedeno rješenje nije nikako dobro jer se time samo sprječava provjera na klijentskoj strani.
Moguće je da se time samo onemogućio prikaz greške i da se zapravo još ne dobije JIR.

Ono što treba napraviti je objediniti FinaRDCCA2015.crt i FinaRootCA.crt certifikate u jedan tj. u bundle kako bi chain validation prošao ispravno.

Koraci koje smo izveli su:
Formiranje CRT datoteke iz CER(DER) tako da je za svaki izvršena naredba
openssl x509 -inform DER -in YOUR_CERTIFICATE.cer -out YOUR_CERTIFICATE.crt
NIJE POTREBNO AKO SE UZME PEM ILI TXT VARIJANTA (samo rename u crt)).

Nakon toga stvoriti novu praznu datoteku ssl_cis.crt i u nju spojiti datoteke FinaRDCCA2015.crt i FinaRootCA.crt.
Znači copy/paste sadržaja oba crt-a u taj novi ssl_cis.crt.

Nadamo se da smo nekom pomogli.

Pozdrav
Jun 14 at 10:25 PM
rh_orpam wrote:
Ono što treba napraviti je objediniti FinaRDCCA2015.crt i FinaRootCA.crt certifikate u jedan tj. u bundle kako bi chain validation prošao ispravno.
Mnogo hvala na savjetu i pomoći. Danas sam probao malo ovo riješenje na Apache kao localhost. Na Win10 sa PHP 5.6 radi dobro dok na XP-u sa PHP 5.4 javlja OpenSSL greške, nisam dalje istraživao.. Da li trebam tražiti localhost riješenje ili trebam tražiti riješenje na hostingu na nekom drugom računalu..
Jun 15 at 8:22 AM
Edited Jun 15 at 8:30 AM
VKR71 wrote:
rh_orpam wrote:
Ono što treba napraviti je objediniti FinaRDCCA2015.crt i FinaRootCA.crt certifikate u jedan tj. u bundle kako bi chain validation prošao ispravno.
Mnogo hvala na savjetu i pomoći. Danas sam probao malo ovo riješenje na Apache kao localhost. Na Win10 sa PHP 5.6 radi dobro dok na XP-u sa PHP 5.4 javlja OpenSSL greške, nisam dalje istraživao.. Da li trebam tražiti localhost riješenje ili trebam tražiti riješenje na hostingu na nekom drugom računalu..
Razlike u ta dva okružja mogu biti velike.
Mogući problemi mogu biti bilo gdje od OS-a, postavki Apache-a, PHP-a, openssl-a ili razlika u aplikaciji ako verzije nisu iste - vjerujem da to razumiješ.

Nisam siguran ako možeš postaviti 5.6 na XP, ako da, to bi bila najbolja varijanta.

Vjerujem da prvo trebaš pogledati razlike openssl-a u verzijama PHP-a 5.4.x i 5.6.x. kojih ima dosta i navedene su na http://php.net/manual/en/migration56.openssl.php.

Obzirom da nemam dovoljno informacija, a nema smisla da ovdje objavljuješ sve conf/ini/cnf datoteke i kôd aplikacije, ono što bi napravio, ovako na prvu, je provjerio ako si dodao prijedlog Georgia47 sa https://fiskalizacija.codeplex.com/discussions/655042#PostContent_1474635 koji bi mogao utjecati na default na PHP 5.4.x postavke OSSL-a.
CURLOPT_SSLVERSION =>CURL_SSLVERSION_TLSv1_1
Nadam se da će ti nešto od ovog pomoći.

P.S. Ako imaš mogućnost drugog hostinga to bi ti bila najbolja varijanta.

Pozdrav
Jun 15 at 9:58 AM
Problem riješen.. thanks a lot
Po default OpenSSL je bio disable u samoj instalaciji..
Jun 16 at 6:54 AM
Zahvaljujem i ja kao pasivni promatrač.
Uštedjeli ste mi sate :)
Jun 17 at 12:27 AM
Odlično. Napravio kako si rekao, radi bez greške.

Kopirao sadržaj iz jednog i drugog certifikata u prazni ssl_cis.crt i to je to. Svaka čast "rh_orpam"

Ako nekom zatreba da ne mora lutati, preko ovih dolje linkova možete preuzeti cetifikate u txt ekstenziji

DEMO certifikati
https://demo-pki.fina.hr/certifikati/demo2014_sub_ca.txt
https://demo-pki.fina.hr/certifikati/demo2014_root_ca.txt

PRODUKCIJSKI certifikati
http://rdc.fina.hr/RDC2015/FinaRDCCA2015.txt
http://rdc.fina.hr/Root/FinaRootCA.txt
Jun 18 at 6:31 PM
Probao sam se malo igrati sa ovom gore navedenom varijablom
CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_1

CURLOPT_SSLVERSION:
CURL_SSLVERSION_TLSv1 - Prolazi fiskalizacija
CURL_SSLVERSION_SSLv2 - Ne prolazi fiskalizacija
CURL_SSLVERSION_SSLv3 - Prolazi fiskalizacija
CURL_SSLVERSION_TLSv1_0 - Prolazi fiskalizacija
CURL_SSLVERSION_TLSv1_1 - Prolazi fiskalizacija
CURL_SSLVERSION_TLSv1_2 - Prolazi fiskalizacija

Da li to znači da aplikacija koju koristim za fiskalizaciju spremna za promjene protokola, koju planira uvesti porezna.?

Tijekom testiranja probao sam sa ovom postavkom i prolazi fiskalizacija
CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_9

Da nisam slučajno nešto na krivo mjesto stavio, objavljujem cijeli dio koda vezan za postavke.
    $settings = array(
        CURLOPT_URL => $this->url,
        CURLOPT_CONNECTTIMEOUT_MS => $timeout * 1000,
        CURLOPT_TIMEOUT_MS => $timeout * 1000,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => $xml,
        CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_2,                       
        // secure this!
        CURLOPT_SSL_VERIFYHOST => 2,
        CURLOPT_SSL_VERIFYPEER => true,
        CURLOPT_CAINFO => dirname(__FILE__) . '/' . $this->caCert,
    );
Hvala na odgovoru.
Jun 20 at 7:35 AM
Edited Jun 20 at 7:35 AM
josipj wrote:
Probao sam se malo igrati sa ovom gore navedenom varijablom
CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_1

CURLOPT_SSLVERSION:
CURL_SSLVERSION_TLSv1 - Prolazi fiskalizacija
CURL_SSLVERSION_SSLv2 - Ne prolazi fiskalizacija
CURL_SSLVERSION_SSLv3 - Prolazi fiskalizacija
CURL_SSLVERSION_TLSv1_0 - Prolazi fiskalizacija
CURL_SSLVERSION_TLSv1_1 - Prolazi fiskalizacija
CURL_SSLVERSION_TLSv1_2 - Prolazi fiskalizacija

Da li to znači da aplikacija koju koristim za fiskalizaciju spremna za promjene protokola, koju planira uvesti porezna.?

Tijekom testiranja probao sam sa ovom postavkom i prolazi fiskalizacija
CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_9

Da nisam slučajno nešto na krivo mjesto stavio, objavljujem cijeli dio koda vezan za postavke.
    $settings = array(
        CURLOPT_URL => $this->url,
        CURLOPT_CONNECTTIMEOUT_MS => $timeout * 1000,
        CURLOPT_TIMEOUT_MS => $timeout * 1000,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => $xml,
        CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_2,                       
        // secure this!
        CURLOPT_SSL_VERIFYHOST => 2,
        CURLOPT_SSL_VERIFYPEER => true,
        CURLOPT_CAINFO => dirname(__FILE__) . '/' . $this->caCert,
    );
Hvala na odgovoru.
Izvrsno da si proveo ove testove za različite postavke, po tome je vidljivo da očito još imaju upaljen SSL3 i TLSv1.0.

Na osnovu članka http://fiskalizacija.codeplex.com/discussions/655391#PostContent_1475650 vidljivo je da to planiraju ugasiti ubuduće.
Da li to znači da aplikacija koju koristim za fiskalizaciju spremna za promjene protokola, koju planira uvesti porezna.?
Da

Vjerojatno si ovdje slučajno upisao 9 pa ovo ne prolazi:
CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_9
Sve moguće vrijednosti tj. konstante dostupne su na https://curl.haxx.se/libcurl/c/CURLOPT_SSLVERSION.html.

Iako možeš koristiti CURL_SSLVERSION_DEFAULT predlažem da postaviš CURL_SSLVERSION_TLSv1_1 kako je bilo navedeno jer će taj sigurno biti u uporabi kad ugase SSL i ne vjerujem da će ga mijenjati tako skoro.

Hvala na postanju testova koje si izveo.

Pozdrav
Jun 24 at 4:03 PM
Nema na čemu, hvala tebi na vrlo korisnim odgovorima.

CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_9
Ovu vrijednost sam stavio i prošla je fiskalizacija. Očito za vrijednosti koje ne postoje se uzima zadana.

Pozdrav!
Sep 23 at 9:50 AM
Ako netko radi na https://github.com/grizwako/Fiskalizator_PHP onda bilo super kad bi nam proslijedio implementaciju ProvjeriZahtjev metode.
Ako ne nađemo gotovo rješenje vjerojatno ćemo sami izvršiti prilagodbu (i objaviti) u dogledno vrijeme čim dođe na red ali za svaki slučaj - možda je netko već riješio.

Hvala,
Pozdrav
Sep 30 at 11:10 AM
Ja sam spreman platiti. Tako da ako neko ima ovu metodu napravljenu nek se javi sa cijenom.
Sep 30 at 4:46 PM
Poslao sam ti na mail. Provjeri pa se javi.
Sep 30 at 5:42 PM
Ako radi ispravno mogli bi ga još malo skratiti/optimizirati
Sep 30 at 10:44 PM
Nisam stigao povezati sa mojim programom, ali koliko vidim sve radi ispravno. Budem još malo sutra testirao pa ti se javim. Čujemo se sutra pa sve dogovorimo.
Oct 9 at 8:02 PM
josipj wrote:
Nisam stigao povezati sa mojim programom, ali koliko vidim sve radi ispravno. Budem još malo sutra testirao pa ti se javim. Čujemo se sutra pa sve dogovorimo.
Jeste uspjeli?
Oct 9 at 10:19 PM
Oprosti na ne javljanju, bio sam u nekim drugim poslovima pa se nisam imao vremena pozabaviti sa ovim. Ovo odlično radi. Pošalji račun.