Procedura uzyskania certyfikatu do ZSMOPL na potrzeby ewaluacji

Transkrypt

Procedura uzyskania certyfikatu do ZSMOPL na potrzeby ewaluacji
Procedura uzyskania certyfikatu do
ZSMOPL na potrzeby ewaluacji
1. Wprowadzenie
Dokument opisuje procedurę uzyskania przez podmiot raportujący certyfikatu podpisanego przez
CC CSIOZ na potrzeby podłączenia systemu lokalnego podmiotu raportującego (zwany dalej
systemem lokalnym) do Zintegrowanego Systemu Monitorowania Obrotu Produktami Leczniczymi
(ZSMOPL) w czasie ewaluacji.
Podmiot raportujący, przed przystąpieniem do procesu uzyskania certyfikatu, zakłada w ZSMOPL
konto podmiotu raportującego oraz konto administratora lokalnego, wg „Procedury podłączenia do
ZSMOPL na środowisku ewaluacyjnym”.
2. Definicje i skróty

System lokalny podmiotu raportującego – system informatyczny apteki / hurtowni
farmaceutycznej / podmiotu odpowiedzialnego, w którym podmiot raportujący przetwarza dane
o przeprowadzanych transakcjach zakupu i sprzedaży, umożliwiający wygenerowanie raportu
zgodnego z oczekiwaną specyfikacją interfejsu systemu ZSMOPL

Administrator lokalny – administrator systemu lokalnego podmiotu raportującego. Osoba
reprezentująca podmiot raportujący w systemie ZSMOPL

ZSMOPL - Zintegrowany System Monitorowania Obrotu Produktami Leczniczymi, o którym
mowa w art. 29 ustawy o z dnia 28 kwietnia 2011 r. (Dz.U. 2011 nr 113 poz. 657 z późn. zm)

CC CSIOZ – Centrum Certyfikacji obsługiwane przez Centrum Systemów Informacyjnych Ochrony
Zdrowia (CSIOZ)
1
3. Proces uzyskania
OpenSSL
certyfikatu z CC CSIOZ z wykorzystaniem
Na poniższym schemacie przedstawiono proces uzyskania certyfikatu z CC CSIOZ
Rys. 1. Schemat procesu uzyskania certyfikatu z CC CSIOZ
Proces uzyskania certyfikatu składa się z następujących etapów (Ryc. 1):
1.
2.
3.
4.
Przygotowanie przez administratora systemu lokalnego klucza prywatnego (KEY);
Przygotowanie przez administratora systemu lokalnego żądania podpisania certyfikatu (CSR);
Przesłanie żądania podpisania certyfikatu (CSR) do CC CSIOZ;
Podpisanie CSR przez CC CSIOZ. Odesłanie certyfikatu do administratora systemu lokalnego (PEM).
3.1.Przygotowanie klucza prywatnego
Administrator systemu lokalnego, na którym ma zostać zainstalowany certyfikat, może wygenerować
klucz prywatny za pomocą pakietu OpenSSL.
OpenSSL jest oprogramowaniem typu opensource. Wersja dla Windows dostępna do pobrania jest
m.in. https://sourceforge.net/projects/openssl/
W pierwszej kolejności za pomocą pakietu OpenSSL należy wygenerować klucz prywatny. Następnie
należy utworzyć plik żądania wydania certyfikatu (CSR) na podstawie wcześniej wygenerowanego
klucza prywatnego.
2
Klucz prywatny można wygenerować z hasłem lub bez hasła. W przypadku wyboru metody z hasłem
może zajść konieczność podawania hasła każdorazowo przy starcie systemu lokalnego lub hasło to
będzie musiało być umieszczone w konfiguracji systemu lokalnego. W przypadku wyboru metody bez
hasła nie będzie konieczności podawania hasła, jednak jest to metoda mniej bezpieczna. Wybór
konkretnej metody powinien być dostosowany do wymogów implementacji po stronie systemu
lokalnego w uzgodnieniu z dostawcą systemu lokalnego.
W poniższych przykładach używana jest nazwa pliku systemlokalny.key jednak można użyć dowolnej
innej nazwy. Zaleca się użycie rozszerzenia *.key, jednak nie jest to obowiązkowe.
Generowania klucza z hasłem
Polecenie: openssl genrsa -des3 -out systemlokalny.key 2048
Przykład:
c:\openssl>openssl genrsa -des3 -out systemlokalny.key 2048
Loading 'screen' into random state - done
Generating RSA private key, 2048 bit long modulus
..................................+++
..........+++
e is 65537 (0x10001)
Enter pass phrase for systemlokalny.key:
Verifying - Enter pass phrase for systemlokalny.key:
Generowanie klucza bez hasła
Polecenie: openssl genrsa -out systemlokalny.key 2048
Przykład:
c:\openssl>openssl genrsa -out systemlokalny.key 2048
Loading 'screen' into random state - done
Generating RSA private key, 2048 bit long modulus
................................................................................
...............+++
3
................................................................+++
e is 65537 (0x10001)
Usunięcie hasła z klucza prywatnego (gdyby zaszła taka konieczność)
Polecenie: openssl rsa -in systemlokalny.key -out systemlokalny.bezhasla.key
Przykład:
c:\openssl>openssl rsa -in systemlokalny.key -out systemlokalny.bezhasla.key
Enter pass phrase for systemlokalny.key:
writing RSA key
Weryfikacja klucza prywatnego
Przykład:
openssl rsa -in systemlokalny.key –check
c:\openssl>openssl rsa -in systemlokalny.key -check
Enter pass phrase for systemlokalny.key:
RSA key ok
writing RSA key
-----BEGIN RSA PRIVATE KEY----MIIEpQIBAAKCAQEAtuZKe5PQaDTflZRPRj3wqRGIHg01WZFnouNPFPwDvTrnwHdN
2V1MCNxkhkEsRaZJ2I9UncczaWeniPJnYnJHN4oNaCl9kmdy6M9JTqSUoLcdGyLB
nGSwUqpj+otxgemfvTk7QSmtgOFTXanNMC5DM4vuTK/gW+SNszl+tGbGWkr33zwT
uXCP5qfL0RSdyO0RzU517OIUejz1HEbP9Pjs87oZxlIRo1p79tb2apiYm7qDH6Z+
G77Y/aD384ZbQ4If4zXx1CZH3iqc3PdS/ajE/MlkiLtHcKeisvLfai0bLv85s0GB
GYlHoT6KvQ6kPovou/cNINbTwtEl1IGQqhqeUQIDAQABAoIBAQCEF+aLQcIuwKEK
AscOUAXT1VmdeqShP6a9ubWPzkNVE4n1MzUCW6NicuoXHFLBKswCn+HY4dl7suUI
vylzrF1K+2WbaPvMFPKkubCUH8FIIXff9UYnkYDW80Cp3rPnw7cejosBEPzCK/pt
lwkeVwsp21IMCKndNEAyxL+BwwhWhL2QyUfaQoVXxWgkCSI7x1hMg3e68nO1KAnM
/samlcbC0Gx25fXC/drcOgx43+EPDMZ+sZeGOc+6f+nYhkYmikYQzZE1yUjpXUzU
4
nXy+OgxoyzIzCZbpLyj3DeKjwzY6HirH24NG56x7OMhs9B1wAJhr35XWuaiJQgDa
1fhxnI0RAoGBAOHPBbkIr99qko/m40bW1DtrfdMGqiLOqWUMtn0NLyb8iEg/FcVj
aYtftli/9MI1fwyH8qdiY/gIy3WYOhP8ljbPsNLy7KXs96918qrV8tjWaBmO0PgL
ZuEwvB1sLy2VcItWoh7wu+hKA0k/qxuL07QV+0LTa0N4uLrHP5gmcWvHAoGBAM9a
k3ce2+hanwu0nnkUcaVyIOuZeC8SH/nIVxTDl2w5Dd2wwq/vnVsmc1IJ2eQ1OG0T
iZMjnbJlvvbbBuHkzqLE96n4jh87/69o0qyMZ1qI8tVAViAhhqqsID+zaHeDE7pW
GSWG1MDJwdhsd7/M4t3OKJuELfl1zgcTGvfCZTUnAoGAC9wFnuw34HIGdIxZz3Sk
/OHuX9Dvypg0CVybkQHKQi/tMG4vxIguGOXT++FJB5IrtArH0ca3HWXI2co+8qHH
eeV6kfm0OBqz/4EgV5yY/o50NTNtAjoHEziuCJWP/MLmgEryhNF77P1GIui3IeE8
Iy8sXRwhfA+xFA425tTODC0CgYEAiNOuJ5bXahYSiXjgcemJrLEJBC67XeRJ8VvA
CtWeYC2t9rIjZlFptrJCusoBXFO6LlAMImoIL6ZwQxj5C6sep83t191Ke1XuPOOg
0Xe848Mm6o2Px5gX8xuuFBrhPqviIr2ZzmeQkL8SCSxaQNiEg/T8WtL4O3r/Py/e
RcujWVUCgYEAol13iSkMo1Qxdp9e4NbFutOaVH41uTAiseQaSpgN6klj73jvlsd0
Wh9HJBbJxDRdWgkKiNXfN4hiX+w4mcWhCmNc+yvOzU9QwGtrCIYQN5PF/FNvHrX+
1cezvEXHZ/zDQkfy0i+EcjtOTSxH6b1mBa9O1lV9c/8N2NI0uGkeQUQ=
-----END RSA PRIVATE KEY-----
3.2. Przygotowanie pliku CSR
Administrator systemu lokalnego, na którym ma zostać zainstalowany certyfikat, może wygenerować
plik CSR za pomocą pakietu OpenSSL na podstawie wcześniej wygenerowanego klucza prywatnego.
W poniższym przykładzie została użyta nazwa systemlokalny.csr, docelowa nazwa jest dowolna,
jednak na potrzeby przeprowadzenie ewaluacji konieczne jest, by nazwa ta była logicznie powiązana
z konkretnym systemem lokalnym, jednoznaczna. Rozszerzenie *.csr jest obowiązkowe i oczekiwane.
Nazwa użytego klucza prywatnego musi być zgodna z nazwą klucza wygenerowanego w poprzednim
kroku.
Generowanie pliku CSR
5
openssl req -new -sha256 -key systemlokalny.key -out systemlokalny.csr –outform PEM
Podczas generowania pliku CSR, administrator zostanie poproszony o podanie danych:
• Country Name (C) – pole obowiązkowe, dwuliterowy kod kraju, koniecznie należy go wpisać z
wielkich liter, np. „PL”.
• State or Province Name (ST) – pole nieobowiązkowe, należy podać nazwę województwa, w którym
mieści się siedziba firmy, np. „Zachodniopomorskie”.
• Locality Name (L) – pole obowiązkowe, należy podać nazwę miejscowości, w której mieści się
siedziba firmy, np. „Szczecin”.
• Organization Name (O) – pole obowiązkowe, należy podać pełną i dokładną nazwę firmy. Nazwa
firmy musi zgadzać się z nazwą znajdującą się w dokumentach rejestrowych: Regon, EDG lub KRS.
• Organizational Unit Name (OU) – pole nieobowiązkowe, należy wpisać w tym polu dział firmy, który
jest odpowiedzialny za wdrożenie certyfikatu, np. „Dzial IT” lub „IT Department”.
• Common Name (CN) – pole obowiązkowe, dla podmiotów posiadających apteki lub hurtownie
farmaceutyczne wpisujemy nazwę (o ile występuje) i adres miejsca prowadzenia działalności (tj.
adres apteki lub hurtowni). Dla podmiotów odpowiedzialnych: adres.
Uwaga: Pole CN ma ograniczenie do 64 znaków.
• Email Address – należy podać adres e-mail osoby odpowiedzialnej za certyfikat.
Ważne wskazówki:
• podczas generowania CSR nie można używać polskich znaków diakrytycznych (narodowych).
• kod kraju musi być wpisany wielkimi literami, np. „PL”.
• pole „Organization Unit Name” (jednostka organizacyjna) nie jest wymagane do wypełnienia
podczas generowania CSR. Możesz w nim określić dział firmy, np. „Dzial IT”.
• należy chronić swój klucz prywatny! Powtórne wygenerowanie takiego samego klucza prywatnego
nie jest możliwe, zatem jego utrata automatycznie uniemożliwia zastosowanie certyfikatu na innym
serwerze! W takiej sytuacji niezbędne będzie ponowne złożenie zamówienia na podstawie nowego
pliku CSR.
Przykład:
c:\openssl>openssl req -new -sha256 -key systemlokalny.key -out systemlokalny.cs
r -outform PEM
Enter pass phrase for systemlokalny.key:
Loading 'screen' into random state - done
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
6
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
----Country Name (2 letter code) [AU]:PL
State or Province Name (full name) [Some-State]:mazowieckie
Locality Name (eg, city) []:Warszawa
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Tu wpisz nazwe
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:apteka.com.pl
Email Address []:[email protected]
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Weryfikacja pliku CSR
openssl req –noout –text –in systemlokalny.csr
lub
openssl req –noout –verify –in systemlokalny.csr
Przykład:
c:\openssl>openssl req -noout -text -in systemlokalny.csr
Certificate Request:
Data:
Version: 0 (0x0)
Subject: C=PL, ST=mazowieckie, L=Warszawa, O=Tu wpisz nazwe, CN=apteka.c
om.pl/[email protected]
7
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:b6:e6:4a:7b:93:d0:68:34:df:95:94:4f:46:3d:
f0:a9:11:88:1e:0d:35:59:91:67:a2:e3:4f:14:fc:
03:bd:3a:e7:c0:77:4d:d9:5d:4c:08:dc:64:86:41:
2c:45:a6:49:d8:8f:54:9d:c7:33:69:67:a7:88:f2:
67:62:72:47:37:8a:0d:68:29:7d:92:67:72:e8:cf:
49:4e:a4:94:a0:b7:1d:1b:22:c1:9c:64:b0:52:aa:
63:fa:8b:71:81:e9:9f:bd:39:3b:41:29:ad:80:e1:
53:5d:a9:cd:30:2e:43:33:8b:ee:4c:af:e0:5b:e4:
8d:b3:39:7e:b4:66:c6:5a:4a:f7:df:3c:13:b9:70:
8f:e6:a7:cb:d1:14:9d:c8:ed:11:cd:4e:75:ec:e2:
14:7a:3c:f5:1c:46:cf:f4:f8:ec:f3:ba:19:c6:52:
11:a3:5a:7b:f6:d6:f6:6a:98:98:9b:ba:83:1f:a6:
7e:1b:be:d8:fd:a0:f7:f3:86:5b:43:82:1f:e3:35:
f1:d4:26:47:de:2a:9c:dc:f7:52:fd:a8:c4:fc:c9:
64:88:bb:47:70:a7:a2:b2:f2:df:6a:2d:1b:2e:ff:
39:b3:41:81:19:89:47:a1:3e:8a:bd:0e:a4:3e:8b:
e8:bb:f7:0d:20:d6:d3:c2:d1:25:d4:81:90:aa:1a:
9e:51
Exponent: 65537 (0x10001)
Attributes:
a0:00
Signature Algorithm: sha256WithRSAEncryption
7f:b8:03:2e:97:24:79:33:88:01:34:7d:be:ec:8d:bc:e1:a8:
ff:00:6a:68:9d:85:c5:53:ea:6b:63:e9:1e:10:5c:7f:d4:24:
33:42:a3:cd:35:a4:2d:ae:ea:fc:d6:b5:af:2b:54:be:0d:5f:
8
ed:68:80:15:91:0f:11:75:4e:2b:26:e3:f0:e5:07:17:e7:48:
aa:31:6c:3b:e8:1c:32:60:ae:c0:10:93:ac:de:cf:b6:50:46:
eb:0f:1d:99:ff:d0:38:13:db:dd:a3:67:dd:fc:1f:ef:6a:6a:
4e:51:99:e8:9a:82:71:74:a0:70:fe:6d:5c:18:a5:84:6a:e7:
4e:27:8d:73:52:4a:f7:92:e6:85:52:4b:6d:c8:07:0d:13:1c:
87:3c:18:22:a3:19:ed:58:b7:85:4e:32:fa:10:02:d2:e3:82:
26:b1:98:3f:cb:0e:1f:cf:7d:01:19:85:7f:b7:65:c8:92:1b:
ac:60:80:7a:ec:86:2b:4e:be:10:e2:4d:b2:dc:4f:d8:28:36:
05:d1:14:6a:b7:2e:ed:66:1d:97:2c:e1:20:4a:74:d4:55:ae:
90:ea:7c:b1:37:f8:db:9a:10:8f:2d:5d:e5:cf:91:b7:27:58:
73:55:e3:64:7a:76:f5:f5:a4:1f:03:31:32:41:24:15:dd:de:
5f:b5:2e:0c
c:\openssl>openssl req -noout -verify -in systemlokalny.csr
verify OK
3.3. Przesłanie żądania podpisania certyfikatu (CSR) do CC CSIOZ
Pliki *.csr należy przesyłać do CSIOZ na adres [email protected]
3.4. Podpisanie CSR przez CC CSIOZ. Odesłanie certyfikatu do
administratora systemu lokalnego
Podpisane certyfikaty o nazwie zgodnej z przesłanym plikiem CSR zostaną odesłane na adres
kontaktowy uzgodniony do celów ewaluacji. Rozszerzenie przesłanego certyfikatu - *.crt
Otrzymany certyfikat można zweryfikować za pomocą komendy
openssl x509 –noout –text –in systemlokalny.crt
Przykład:
c:\openssl>openssl x509 -noout -text -in systemlokalny.crt
9
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 2 (0x2)
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=PL, ST=mazowieckie, L=Warszawa, O=CSIOZ, OU=BZP, CN=CSIOZ CA/e
[email protected]
Validity
Not Before: Aug 12 13:08:05 2016 GMT
Not After : May
9 13:08:05 2019 GMT
Subject: C=PL, ST=mazowieckie, L=Warszawa, O=Tu wpisz nazwe, CN=apteka.c
om.pl
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:b6:e6:4a:7b:93:d0:68:34:df:95:94:4f:46:3d:
f0:a9:11:88:1e:0d:35:59:91:67:a2:e3:4f:14:fc:
03:bd:3a:e7:c0:77:4d:d9:5d:4c:08:dc:64:86:41:
2c:45:a6:49:d8:8f:54:9d:c7:33:69:67:a7:88:f2:
67:62:72:47:37:8a:0d:68:29:7d:92:67:72:e8:cf:
49:4e:a4:94:a0:b7:1d:1b:22:c1:9c:64:b0:52:aa:
63:fa:8b:71:81:e9:9f:bd:39:3b:41:29:ad:80:e1:
53:5d:a9:cd:30:2e:43:33:8b:ee:4c:af:e0:5b:e4:
8d:b3:39:7e:b4:66:c6:5a:4a:f7:df:3c:13:b9:70:
8f:e6:a7:cb:d1:14:9d:c8:ed:11:cd:4e:75:ec:e2:
14:7a:3c:f5:1c:46:cf:f4:f8:ec:f3:ba:19:c6:52:
11:a3:5a:7b:f6:d6:f6:6a:98:98:9b:ba:83:1f:a6:
7e:1b:be:d8:fd:a0:f7:f3:86:5b:43:82:1f:e3:35:
10
f1:d4:26:47:de:2a:9c:dc:f7:52:fd:a8:c4:fc:c9:
64:88:bb:47:70:a7:a2:b2:f2:df:6a:2d:1b:2e:ff:
39:b3:41:81:19:89:47:a1:3e:8a:bd:0e:a4:3e:8b:
e8:bb:f7:0d:20:d6:d3:c2:d1:25:d4:81:90:aa:1a:
9e:51
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
C7:D0:F1:43:14:5D:F5:B9:96:E4:69:EC:E0:20:B3:12:55:B7:BE:F5
X509v3 Authority Key Identifier:
keyid:85:3B:B9:89:F7:B3:74:0D:DA:34:81:F8:D2:BD:1D:5A:53:7B:56:4
2
X509v3 Basic Constraints:
CA:FALSE
X509v3 Key Usage:
Digital Signature, Key Encipherment
Signature Algorithm: sha256WithRSAEncryption
98:20:bc:dd:31:6d:4b:e5:56:b8:24:1b:40:2a:fc:e9:f1:ff:
be:01:1f:e7:76:5c:90:9c:48:79:6f:3e:4a:11:b5:61:e2:af:
98:12:b4:0f:92:29:19:da:65:71:f5:0d:b1:7a:16:14:cf:99:
83:0b:6a:ad:37:df:cf:6f:d8:52:89:f8:74:2d:94:2a:c8:6e:
26:69:26:fb:1a:11:b3:b3:47:de:f7:87:e9:bf:9f:2d:5e:c5:
3d:86:47:90:dd:93:e3:be:ad:e8:15:eb:9c:85:c7:a5:9e:0a:
48:ea:0b:bd:d6:b0:49:3b:f9:f4:11:b4:20:8c:f7:7b:d6:9f:
e7:30:0d:07:4f:cc:2f:ad:38:b8:08:18:0d:47:59:32:60:ff:
6f:27:33:2c:1a:94:fe:5f:4e:58:27:ee:2d:73:19:bc:93:b8:
06:19:ec:63:e7:46:da:3c:e8:d0:bb:11:e7:e1:59:31:fc:a7:
ea:44:e0:c6:04:60:84:08:09:ce:c5:7b:29:40:4d:22:19:6f:
11
99:4a:22:a7:36:12:25:9e:31:fa:c3:56:3a:51:ff:91:83:19:
44:5b:2d:dd:bb:a4:83:b9:bc:4c:ab:89:5e:21:95:7a:e4:bc:
05:42:ae:8d:f7:11:54:a3:d8:df:76:24:b4:2e:ff:90:ba:8e:
be:3b:f0:f0:59:c6:01:03:78:0c:b0:da:9b:50:c1:49:71:80:
e8:5c:ed:ba:83:7d:14:aa:3a:93:58:a8:4e:68:d0:99:cf:5b:
a5:47:60:01:08:7b:80:21:90:d7:5c:bf:34:5d:9e:31:22:eb:
bc:f1:21:4b:bf:8e:71:8f:48:58:f8:a3:de:6a:4b:19:5a:5c:
2e:b8:3a:b4:e8:5b:61:dd:09:6a:0b:dd:8c:34:4c:77:4c:e8:
3b:84:33:23:68:1b:b3:f0:de:82:e8:c1:b1:7c:8f:82:98:df:
a6:93:0f:50:f8:12:04:13:90:f3:6d:8b:7a:b3:f9:f1:a6:15:
71:9c:60:04:3e:39:aa:a3:b0:66:ea:d2:73:99:8d:dc:86:4f:
15:4c:b8:3f:86:3c:62:1e:30:48:83:50:af:8b:ad:93:3c:62:
18:ac:c5:3f:7c:d7:ce:15:b3:dd:ee:04:45:73:c9:0f:94:44:
bc:29:cc:3c:0f:66:8b:1d:65:8d:cc:9e:9c:25:0c:89:9f:a8:
bc:96:5e:67:c0:6d:49:c7:43:32:ca:54:aa:f9:83:3d:b3:e2:
07:10:3e:1f:cf:f5:76:a9:4a:37:49:89:3b:13:5b:01:e5:b1:
51:cc:ba:ba:7c:2c:ec:e3:10:56:bd:e9:b1:12:5a:d2:69:a1:
9d:82:21:0e:f9:c2:ec:f0
Dodatkowo można zweryfikować sumy kontrolne klucza prywatnego, pliku CSR oraz samego
certyfikatu. Wykonanie każdego z poniższych 3 poleceń musi zwrócić wynik zgodny z wynikiem
pozostałych dwóch.
c:\openssl>openssl rsa -in systemlokalny.key -modulus -noout | openssl md5
Enter pass phrase for systemlokalny.key:
(stdin)= 472d21b6969370400ddc467d78071265
c:\openssl>openssl req -in systemlokalny.csr -modulus -noout | openssl md5
(stdin)= 472d21b6969370400ddc467d78071265
c:\openssl>openssl x509 -in systemlokalny.crt -modulus -noout | openssl md5
(stdin)= 472d21b6969370400ddc467d78071265
12
4. Wykorzystanie certyfikatu
4.1. Instalacja certyfikatu w ZSMOPL
Administrator lokalny dokonuje rejestracji certyfikatów na potrzeby aplikacji wysyłających
komunikaty do ZSMOPL zgodnie z procedurą opisaną w dokumencie CSIOZ-SDZSMOPL_PU_Zarządzanie kontami podmiotów raportujących_1.0
4.2. Specyfikacja komunikatu
Specyfikacja komunikatu wysyłanego przez system raportujący do ZSMOPL znajduje się na stronie
CSIOZ https://www.csioz.gov.pl/interoperacyjnosc/interfejsy/ pod hasłem System Monitorowania
Obrotu Produktami Leczniczymi - specyfikacja komunikatów
4.3. Specyfikacja nagłówka komunikatu
System podmiotu raportującego wysyła komunikaty z podpisem i certyfikatem użytym do podpisu. Te
informacje muszą znajdować się w nagłówku komunikatu (<soapenv:Header>). W nagłówku należy
zamieścić element „wsse:Security”, odpowiedzialny za zabezpieczenie w protokole SOAP. W tym
elemencie należy zdefiniować przestrzenie nazw przez dodanie poniższych atrybutów:


xmlns:wsse=”http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext1.0.xsd”
xmlns:wsu=”http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility1.0.xsd”
Element „wsse:Security” składa się z następujących elementów:


element wsse:BinarySecurityToken – w nim zawiera się certyfikat z kluczem publicznym
 definiujemy
atrybut:
EncodingType=”http://docs.oasisopen.org/wss/2004/01/oasis-200401-wss-soap-message-security1.0#Base64Binary”
 definiujemy
atrybut:
ValueType=”http://docs.oasisopen.org/wss/2004/01/oasis-200401-wss-x509-token-profile1.0#X509PKIPathv1”
 definiujemy atrybut wsu:Id z unikalnym identyfikatorem elementu
element ds:Signature – zawiera podpis elektroniczny zawartości sekcji <soapenv:Body>
13

o
o
o
definiujemy
atrybut
przestrzeni
nazw:
xmlns:ds=”http://www.w3.org/2000/09/xmldsig#”
element ds:SignedInfo
 element ds:CanonicalizationMethod
 definiujemy atrybut Algorithm=”http://www.w3.org/2001/10/xmlexc-c14n#”
 element ds:SignatureMethod
 definiujemy
atrybut
Algorithm=”http://www.w3.org/2000/09/xmldsig#rsa-sha1”
 element ds:Reference
 definiujemy atrybut URI, którego wartość jest referencją na element
soapenv:Body (wartości URI ma być identyczna jak wartość atrybutu
wsu:Id poprzedzona znakiem hash #)
 definiujemy element ds:Transforms
o definiujemy element ds:Transform
 definiujemy
atrybut
Algorithm=”http://www.w3.org/2001/10/xml-excc14n#”
 definiujemy element ds:DigestMethod
o definiujemy
atrybut
Algorithm=”http://www.w3.org/2000/09/xmldsig#sha1”
 definiujemy element ds:DigestValue
element ds:SignatureValue z wartością podpisu
element ds:KeyInfo
 element wsse:SecurityTokenReference
 element wsse:Reference
o definiujemy atrybut URI jako referencję czyli z wartością
identyczną
jak
wartość
wsu:Id
elementu
wsse:BinarySecurityToken poprzedzoną znakiem hash.
o
4.4. Test komunikacji z ZSMOPL
Adres usługi WebService do komunikacji w ramach ewaluacji to:
http://ewa-zsmopl.ezdrowie.gov.pl/cxf/zsmopl/ws/?wsdl
W ramach testowania wysyłania komunikatów z certyfikatami, można posłużyć się
oprogramowaniem SoapUI (http://www.soapui.org/downloads/soapui/open-source.html). Jest to
oprogramowanie do testowania aplikacji posługujących się protokołem SOAP polegającej na
14
wymianie informacji między aplikacjami za pomocą WebService’ów komunikujących się poprzez
komunikaty w formacie XML.
Do prawidłowej konfiguracji SoapUI wymagane jest wcześniejsze skonfigurowanie Keystore.
Do utworzenia pliku Keystore potrzebujemy narzędzia keytool, które jest dostarczane razem z
oprogramowaniem javy. Aby korzystać z keytool z linii poleceń w dowolnym katalogu na dysku,
należy wcześniej dodać katalog z zainstalowaną javą ([katalog_z_java]/bin) do zmiennej
środowiskowej systemu (PATH).
Do pliku Keystore należy dodać klucz prywatny użyty do wygenerowania żądania podpisania
certyfikatu oraz certyfikat uzyskany z Centrum Certyfikacji CSIOZ, za pomocą poniższych poleceń,
gdzie:
- aliasKlucza – dowolny ciąg znaków
- systemlokalny.crt – plik z certyfikatem uzyskanym z Centrum Certyfikacji
- kluczPrywatny.key – plik z kluczem prywatnym
- serverkeystore.jks – plik Keystore.
openssl
pkcs12
-export
-name
aliasKlucza
kluczPrywatny.key -out tymczasowyKeystore.p12
-in
systemlokalny.crt
keytool
-importkeystore
-destkeystore
systemlokalny.jks
tymczasowyKeystore.p12 -srcstoretype pkcs12 -alias aliasKlucza
-inkey
-srckeystore
Następnie należy uzupełnć sekcję podpis (Signature) zgodnie z poniższym widokiem ekranu SoapUI
(w poniższym przykładzie plik Keystore ma nazwę MPDAP1000015.jks).
15
Rys. 2. Sposób konfiguracji podpisu w SoapUI
W komunikacie zostanie automatycznie odpowiednio wypełniony nagłówek wraz z certyfikatami, w
taki sposób aby plik XMLowy był gotowy do wysłania.
5. Dokumenty powiązane


CSIOZ-SD-ZSMOPL_PU_Zarządzanie kontami podmiotów raportujących_1.0
Procedura podłączenia do ZSMOPL na środowisku ewaluacyjnym
16

Podobne dokumenty