Uzyskanie keystore (p12) z kluczem prywatnym jest opisane w dokumentacji jako instrukcja kilkukrokowa. Instrukcja jest na epuap / strefa urzędnika / dla integratorów / integracja / Instrukcja generowania żądania certyfikatu do komunikacji z ePUAP oraz PZ.
https://epuap.gov.pl/wps/wcm/connect/92c64f1f-081e-4641-8bc8-651cb8205fac/ePUAP+-+Instrukcja+generowania+%C5%BC%C4%85dania+certyfikatu+do+komunikacji+z+ePUAP+oraz+PZ_v1.1.pdf?MOD=AJPERES
Tam jest to opisane szczegółowo, więc w skrócie:
- tworzy się sobie lokalnie keystore z certyfikatem i kluczem prywatnym (p12),
- tworzy się żądanie podpisania certyfikatu (csr)
- na maila zwrotnie dostaje się odpowiedź (txt, swój certyfikat podpisany ichnim), którą trzeba zaimportować do keystore.
Odpowiedź od COI która zawiera "certyfikaty X.509 w formacie PEM bez klucza prywatnego" ma postać txt i to jest krok 3. Technicznie - zawiera certyfikat podpisany przez urząd (oryginalny nie jest przez nikogo podpisany bo jest wygenerowany lokalnie). Ta odpowiedź nie zawiera klucza prywatnego bo przecież użytkownik już go ma w keystore.
Jeśli więc ten plik o którym mowa wygląda tak
Subject: CN=foo.bar....
Issuer: CN=INT_ePUAPiPZ
-----BEGIN CERTIFICATE-----
MIIDZjCCAk6gAwIBA......
-----END CERTIFICATE-----
Subject: CN=INT_ePUAPiPZ
Issuer: CN=INT_ePUAPiPZ
-----BEGIN CERTIFICATE-----
MIIDEzCCAfugAwIBA....
-----END CERTIFICATE-----
to jest to właśnie ta ich odpowiedź z kroku 3 - certyfikat podpisany ichnim.
A to z kolei znaczy że według instrukcji powyżej należy ich odpowiedź połączyć z posiadanym już keystore (tym z którego wygenerowano csr i im przesłano, na który oni właśnie odpowiedzieli).
I teraz:
- albo jest się w posiadaniu oryginalnego keystore (bo brało się udział w tym procesie od początku) - wtedy się wykonuje krok 3 z instrukcji (keytool -import ...)
- albo się trafiło w proces w ostatnim kroku i nie posiada się danych z poprzednich kroków - wtedy trzeba zidentyfikować kogoś w organizacji kto ma ten oryginalny keystore
Z przypadkiem drugim już spotkałem się klika razy. W organizacji ktoś zainicjował proces, przygotował keystore, wygenerował z niego csr, potem mija chwila, COI przysyła odpowiedź a ponieważ wygląda ona jak certyfikat (bo jest nim, tylko nie ma tam klucza prywatnego), daje się to komuś innemu mówiąc mu "masz, zrób", nie informując tego kogoś że gdzieś ktoś ma ten wyjściowy p12.
Raz było już nawet tak że kontaktowano się z prośbą o pomoc, komuś dano te odpowiedzi (txt) ale oryginalny keystore generował ktoś inny kto go w międzyczasie usunął, bo nie doczytał instrukcji i przegapił że to będzie potrzebne.
Wtedy proces trzeba powtórzyć od kroku 1, natomiast, to od dawna prawie od ręki działa, tworzy się to żądanie, przez int.epuap składa się wniosek o wygenerowanie certyfikatu, na stronie wniosku wgrywa się ten CSR a odpowiedź na maila przychodzi nawet tego samego dnia.