Kako koristiti potpis FISKAL certifikatom na ASP.NET okruženju

Coordinator
Nov 6, 2012 at 2:18 PM
Edited Nov 7, 2012 at 12:20 PM

S obzirom da sam do sada čuo dosta developera koji se muče oko dohvata FISKAL certifikata koji je instaliran u Certificate Store, ovo su kratke upute kako najlakše osposobiti produkcijski stroj i dati prava IIS servisu da dođe do FISKAL certifikata te njime potpiše XML

Primjer je odrađen na Windows Server 2008 R2

1. Otvorite MMC konzolu

Image Hosted by ImageShack.us

2. U meniju File, odaberite "Add/Remove Snap-in"

3. U listi dostupnih snap-insa, kliknite Certificates i zatim gumb Add->

4. Odaberite Computer Account pa stisnite gumb Next pa Finish i onda OK

5. Otvorite child tree od Trusted Root Certification Authorities (Certifikates)

6. Na Nodeu "Certificates", desni klik i "All Tasks...\Import"

7. Kada se otvori wizard, nađite ROOT certifikat od Fine, koji ste prije toga skinuli na stroj pa pritisnite NEXT

8. Ostavite opciju "Place all certificates in the following store"--> Trusted Root Certification Authorities, pa NEXT i FINISH

Image Hosted by ImageShack.us

9. U popisu Certifikata bi se trebao pojaviti DEMO certifikat

10. Otvorite Personal\Certificates mapu u koju je potrebno importirati FISKAL 1 certifikat. Desni klik na "Certificates" pa "Import". Ovdje importirate FISKAL 1 certifikat.

11. Također, ostaviti opciju "Certificat store: --> Personal", NEXT, FINISH

12. Sada je potrebno provjeriti pod kojim se userom pokreće ASP.net aplikacija. Minimizirajte MMC konzolu, otvorite IIS konzolu, kliknite na Application Pools. Pod pretpostavkom da se ASP-net aplikacija otvara pod "Default Application Pool", pogledajte koji Identitet je odgovoran za pokretanje (pod kojim se identitetom pokreće aplikacija, odnosno, koji je user odgovoran za taj "pool").

Image Hosted by ImageShack.us

13. Obično je to LocalService. Uzmimo da se u primjeru koristi LocalService za pokretanje ASP.net programa. Zatvorite IIS konzolu i vratite se u MMC, Certificates konzolu. Odite na FISKAL 1 certifikat, desni klik na FISKAL 1, i odaberite "Manage Private Keys".

Image Hosted by ImageShack.us

14. U dialogu koji će se pojaviti, popis je svih identiteta koji smiju baratati s privatnim ključevima certifikata. Ovdje ćemo dodati LocalService Account (ili account koji koristite za aplikaciju). Stisnite Add,,,pa Advanced... pa Find Now gumbe. Odaberite iz popisa "Search resultat" LOCAL SERVICE stavku i kliknite OK pa OK. U dialogu sa popisom identiteta koji smiju koristiti ključeve, sada bi se trebao nalaziti i LOCAL SERVICE account. Ako već nisu automatski dodijeljena prava, dodamo mu Full Control i READ prava.

Image Hosted by ImageShack.us

15. Resetirajte IIS. 

Nakon ovoga, asp.net aplikacija koju pokreće LOCAL SERVICE account, biti će ovlaštena da potpiše XML datoteku ključem iz FISKAL 1 certifikata. 

Naravno, radi sigurnosti, uvijek možete dodati novi korisnički račun, dodijeliti mu određene dozvole i samo pod njim pokretati samo aplikaciju za fiskalizaciju. Tako ćete biti sigurni da ništa osim tog usera ne može pristupiti ključu iz certifikata.

Također, zapamtite da certifikat morate dohvatiti na ovaj način:

 

X509Certificates.X509Certificate2 cert = Raverus.FiskalizacijaDEV.PopratneFunkcije.Potpisivanje.DohvatiCertifikat("FISKAL 1", X509Certificates.StoreLocation.LocalMachine, X509Certificates.StoreName.My);
Coordinator
Nov 7, 2012 at 9:30 AM

Nadam se da možemo staviti link na ovaj izvrstan članak u dokumentaciju (pod Resources: http://fiskalizacija.codeplex.com/documentation) ?

Coordinator
Nov 7, 2012 at 12:19 PM

Naravno :)

Coordinator
Nov 7, 2012 at 12:21 PM

Thnx

Mar 26, 2013 at 10:56 PM
da li ovo podrazumijeva da se na jednom stroju moze nalaziti samo jedan FISKAL 1 certifikat?
Nov 15 at 1:49 PM
Pozdrav,
instalirao sam certifikate kako je navedeno (dodao sam naknadno u Trusted Root Certification Authorities : demo2014_root_ca.cer i demo2014_sub_ca.cer)

Probao sam kroz CMS i uspijem uredno generirati i potpisati XML ali kad pošaljem dobijem grešku: The underlying connection was closed: An unexpected error occurred on a send.

Gdje griješim (ili što nisam instalirao/konfigurirao)?
Nov 15 at 2:25 PM
kradolov wrote:
Pozdrav,
instalirao sam certifikate kako je navedeno (dodao sam naknadno u Trusted Root Certification Authorities : demo2014_root_ca.cer i demo2014_sub_ca.cer)

Probao sam kroz CMS i uspijem uredno generirati i potpisati XML ali kad pošaljem dobijem grešku: The underlying connection was closed: An unexpected error occurred on a send.

Gdje griješim (ili što nisam instalirao/konfigurirao)?
Ako ti se da, probaj preko našeg servisa, samo umjesto https://cis.porezna-uprava.hr:8449/FiskalizacijaService (za produkciju) odnosno https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest, staviš za testni: http://werpfisk.dyndns.biz:8449/Testiranje ili http://werpfisk.dyndns.biz:8449/FiskalWINXP...
Sve se radi na principu "poštanskog sandučića", dakle naši serveri ne radi ništa drugo nego preusmjeravu na CIS, ako lokalni stroj nema TLS protokol.
Pozdrav, Ozren.
Nov 15 at 3:02 PM
Idem preko testnog "http://werpfisk.dyndns.biz:8449/Testiranje" i dobijem grešku: Unable to connect to the remote server.

Sumnjam da je problem do neke postavke u IIS-u jer na toj mašini (win7 pro x64) razvijem/održavam i desktop aplikacije u VB 6.0 i VB.Net i u njima uredno radi fiskalizacija.
Nov 15 at 3:27 PM
Servis je testiran na desetak XP strojeva, nekoliko DOS strojeva, neke stare Windows 7 i Vista, i svi uspjevaju poslati, te primiti potpisane, provjerene XML-ove.
kao što kažeš, moguće postavke na IIS-u.
Nov 15 at 4:50 PM
Ili možda krivo pozivam?
Možda umjesto cis.PosaljiRacun(racun, certifikat) , trebam koristiti cis.PosaljiSoapPoruku ???
Nov 15 at 5:26 PM
Potpuno isto kao prije, ne mienja se niti jedna linija koda.
Nov 17 at 11:24 AM
Problem je u Frameworku ;))))
koristim VS2008 i verziju 2.0 dll-a ... zato nema komunikacije.
Nov 17 at 1:30 PM
:) Jesi probao na naš serve? zanima me brzina prijenosa preko takvih aplikacija.