import

Komenda import służy do importu certyfikatów wygenerowanych przez MCU (Moduł Certyfikatów i Uprawnień)

Linki do środowisk:

ŚrodowiskoLink
Produkcjahttps://mcu.mf.gov.pl/web/login
Demohttps://web2tr-ksef.mf.gov.pl/web/

Poniżej przedstawiam samouczek jak wygenerować certyfikat na środowisku demo

  1. Zaloguj się do aplikacji

  2. Wrowadź swój numer NIP

  3. Kliknij “Podpisz”

  4. Wybierz metodę autoryzacji. Ja wybrałem profil zaufany bo akurat w momencie tworzenia tego rozdziału dokumentacji nie działała mi aplikacja eDO App :-)

  5. W aplikacji MCU kliknij na menu “Certyfikaty” a następnie “Wnioskuj o certyfikat”

  6. Wypełnij formularz. Zwróć uwagę na nazwę certyfikatu - wartość tego pola stawnowić będzie podstawę nazwy pliku (bez rozszerzenia) klucza prywatnego oraz certyfikatu

    Zapisz hasło w osobnym pliku tekstowym jeśli nie ufasz swojej pamięci krótkotrwałej. Będzie ono potrzebne w kolejnym kroku
  7. Wybierz przeznaczenie certyfikatu. Zacznijmy od autoryzacji

  8. Kliknij “Wyślij wniosek o wydanie certyfikatu” a następnie utwórz kolejny wniosek

  9. Pamiętaj o wybraniu innej nazwy (ja wybrałem “offline-demo”)

  10. Wybierz kolejne przeznaczenie certyfikatu - tym razem “Podpis linku”

  11. Przejdź do pozycji “Lista certyfikatów” i skopiuj numery seryjne oraz pobierz pliki certyfikatów

Import certyfikatu do programu

Odszyfrowanie

Pliki klucza prywatnego są zabezpieczone hasłem. Niestety, pomimo najszczerszych chęci nie byłem w stanie znaleźć biblioteki w golang która byłaby w stanie je odszyfrować. Jako, że czas mnie gonił postanowiłem iść na ciężki kompromis i po prostu dodać odszyfrowane klucze. Jeśli wiesz w jaki sposób odszyfrować klucze “w locie” w golang - będę wdzięczny za podpowiedź :)
openssl pkey -in authentication.key -passin file:pass.txt -out authentication-decrypted.pem

gdzie pass.txt to ścieżka do pliku z zapisanym hasłem certyfikatu

Dodanie odszyfrowanego klucza oraz certyfikatu

Pamiętaj o flagach które sterują wybraniem bramki. Domyślną bramką jest produkcyjna

flagaflaga (skrót)wybór środowiska
--test-gateway-tśrodowisko testowe
--demo-gatewayśrodowisko przedprodukcyjne (demo)

Obsługiwane flagi

flagaznaczenie
-nNumer NIP podmiotu
-pścieżka do odszyfrowanego pliku klucza prywatnego
--certificateścieżka do pliku certyfikatu w formacie PEM
--serialnumer seryjny certyfikatu (do uzyskania na stronie MCU)
--usageprzeznaczenie certyfikatu. Dopuszczalne wartości: Authentication lub Offline
./ksef --demo-gateway certs import -n 1111111111 -p authentication-decrypted.pem --certificate authentication.crt --serial AABBCCDDEEFFGGHH --usage Authentication