„Zestaw kluczy nie istnieje” w Comarch ERP Optima to klasyczny błąd, który zatrzymuje wysyłkę e-Deklaracji, JPK i e-Sprawozdań – a przy pracy przez pulpit zdalny (RDP) standardowe rozwiązanie z internetu po prostu nie zadziała. Pokażę przyczynę, której nie znajdziesz w pierwszych wynikach Google, i przeprowadzę cię krok po kroku przez naprawę po stronie serwera terminalowego.
TL;DR: Komunikat oznacza, że Windows nie widzi klucza prywatnego certyfikatu kwalifikowanego. Przy pracy przez RDP certyfikat musi być zainstalowany w magazynie Osobisty konkretnego użytkownika na serwerze terminalowym, a nie na lokalnym laptopie. Po imporcie należy wyłączyć w Optimie tryb terminalowy wymiany danych z komputerem lokalnym.
Co oznacza błąd „Zestaw kluczy nie istnieje” w Comarch Optima?
Błąd „Zestaw kluczy nie istnieje” pojawia się wtedy, gdy system Windows widzi certyfikat kwalifikowany, ale nie może odnaleźć powiązanego z nim kontenera klucza prywatnego – czyli części potrzebnej do faktycznego podpisania dokumentu.
Sam certyfikat publiczny w magazynie nie wystarczy. Do podpisu Comarch Optima potrzebuje pary: certyfikat plus klucz prywatny, do którego Windows ma dostęp przez interfejs CryptoAPI, opisany w dokumentacji CryptoAPI Microsoftu. Brak klucza prywatnego = brak podpisu.
Najczęstsze przyczyny w środowisku produkcyjnym
- Brak certyfikatu w magazynie Windows – certyfikat nie został zaimportowany do gałęzi Osobisty w certmgr.msc.
- Zły magazyn certyfikatów – import poszedł do gałęzi „Inne osoby” zamiast „Osobisty”.
- Zduplikowane lub uszkodzone wpisy – typowo po aktualizacji sterowników, migracji profilu lub reinstalacji systemu.
- Nieaktualny sterownik karty kryptograficznej – dotyczy szczególnie oprogramowania IDProtect i kart Sigillum.
- Praca przez RDP bez certyfikatu na serwerze – pomijana przyczyna, generuje 90% zgłoszeń, które trafiają do mnie w środowiskach terminalowych.
Dlaczego RDP komplikuje sprawę?
Przy połączeniu przez Remote Desktop Protocol Comarch Optima działa na komputerze zdalnym (serwerze), a nie na maszynie lokalnej pracownika – więc certyfikat zainstalowany na laptopie księgowej jest dla programu całkowicie niewidoczny.
Optima sięga do magazynu certyfikatów konta Windows, na którym aktualnie pracuje proces. W sesji RDP tym kontem jest profil użytkownika na serwerze, nie na lokalnym komputerze. Zainstalowanie podpisu na laptopie i logowanie się na pulpit zdalny to dwa równoległe światy, które się nie przecinają.
Wniosek: certyfikat kwalifikowany musi być w magazynie konta tego konkretnego użytkownika na serwerze RDP – nie globalnie, nie na innym profilu, nie tylko lokalnie.
Rozwiązanie krok po kroku – jak naprawić błąd przy pracy przez RDP?
Naprawa zajmuje średnio 10-15 minut na użytkownika i sprowadza się do importu certyfikatu na serwerze oraz właściwej konfiguracji trybu terminalowego w Optimie.
Wdrażałem ten scenariusz wielokrotnie u klientów z biurami rachunkowymi pracującymi w modelu terminalowym. Procedura wygląda zawsze tak samo:
Krok 1 – Zaloguj się na serwer jako dany użytkownik
Połącz się przez RDP na konto pracownika, który zgłasza problem. Logowanie jako administrator nie wystarczy – certyfikat trafia do profilu użytkownika, który aktualnie się loguje, więc musisz być w jego sesji.
Krok 2 – Otwórz menedżer certyfikatów
- Wciśnij Win + R, wpisz
certmgr.msci potwierdź Enterem. - Rozwiń gałąź Osobisty → Certyfikaty.
- Sprawdź, czy certyfikat kwalifikowany pracownika już tam jest.
Jeśli widzisz certyfikat z imieniem i nazwiskiem pracownika – przeskocz do kroku 4. Jeśli go nie ma albo jest w innej gałęzi (np. „Inne osoby”) – przejdź do kroku 3.
Krok 3 – Zainstaluj certyfikat na serwerze
- Skopiuj plik certyfikatu (
.pfxlub.cer) na serwer – przez schowek RDP, udostępniony folder lub przekierowany dysk. - Kliknij plik prawym przyciskiem → Zainstaluj certyfikat.
- Wybierz lokalizację: Bieżący użytkownik.
- Wskaż magazyn ręcznie: Osobisty (nie zostawiaj automatycznego wyboru).
- Jeśli importujesz
.pfx, podaj hasło i zaznacz „Oznacz ten klucz jako eksportowalny” tylko jeśli polityka firmy na to pozwala.
Jeżeli certyfikat siedzi na karcie kryptograficznej (np. Sigillum), musisz albo podpiąć czytnik bezpośrednio do serwera, albo przekierować urządzenie USB w opcjach klienta RDP – opisuje to dokumentacja Microsoft o przekierowaniu zasobów w RDP.
Krok 4 – Sprawdź tryb terminalowy w Comarch Optima
W Comarch ERP Optima wejdź do:
Konfiguracja → Stanowisko → Ogólne → Parametry
Znajdź opcję „Wymiana danych z komputerem lokalnym w trybie terminalowym”. Logika jest taka:
- Certyfikat zainstalowany na serwerze RDP (zalecane) → opcja powinna być wyłączona.
- Certyfikat zostaje tylko na komputerze lokalnym i jest przekazywany do sesji → opcja włączona.
Najczęstszy błąd: opcja jest włączona z poprzedniej konfiguracji, a certyfikat zaimportowano już na serwer. Wtedy Optima szuka klucza po stronie lokalnej, nie znajduje – i wyrzuca komunikat. Po zmianie ustawienia zrestartuj program. Pełen opis parametru znajdziesz w bazie wiedzy Comarch Optima.
Krok 5 – Ponów wysyłkę dokumentu
Wróć do e-Deklaracji, JPK lub e-Sprawozdania i ponów wysyłkę. Przy wyborze certyfikatu wskaż ten z imieniem i nazwiskiem pracownika – jeśli widzisz na liście kilka, drugi certyfikat administratora albo wpis testowy może wprowadzać w błąd.
Rozwiązanie dla kart kryptograficznych Sigillum i IDProtect
Karty Sigillum z oprogramowaniem IDProtect to osobny przypadek – tu standardowy import nie pomaga, bo certyfikat siedzi w pamięci karty, a Windows musi go „zobaczyć” przez warstwę CSP karty.
U klienta z biurem rachunkowym pracującym na sesjach RDP wdrożyliśmy taką procedurę naprawczą i od dwóch lat nie wraca:
- Otwórz
certmgr.msci z gałęzi Osobisty usuń wszystkie certyfikaty wystawione przez „CUZ Sigillum – QCA1″. - Odinstaluj sterownik IDProtect (Panel sterowania → Programy i funkcje).
- Zrestartuj sesję, podłącz czytnik ponownie – system zaimportuje certyfikaty z karty automatycznie.
- Uruchom Sigillum Menedżer → Ustawienia i zaznacz opcję „Użyj mechanizmu CSP”.
- Ponów wysyłkę w Comarch Optima.
Jeśli czytnik nie jest widoczny po stronie serwera, sprawdź w opcjach klienta RDP zakładkę Zasoby lokalne → Więcej i upewnij się, że karty inteligentne i porty USB są przekierowane.
Porównanie: gdzie zainstalować certyfikat?
| Scenariusz pracy | Gdzie zainstalować certyfikat | Tryb terminalowy w Optimie |
|---|---|---|
| Praca lokalna na komputerze użytkownika | Profil użytkownika lokalny | Wyłączony |
| Praca przez RDP, certyfikat na serwerze | Profil użytkownika na serwerze | Wyłączony |
| Praca przez RDP, certyfikat na karcie + przekierowanie USB | Karta + sterowniki na serwerze | Wyłączony |
| Praca przez RDP, podpis lokalny przekazywany do sesji | Profil lokalny komputera | Włączony |
Dobre praktyki na przyszłość
Większość zgłoszeń „Zestaw kluczy nie istnieje” wraca cyklicznie – po aktualizacjach Windows, migracjach profili lub odnowieniach certyfikatu – i daje się wyeliminować kilkoma nawykami administracyjnymi.
- Dokumentuj profile – prowadź arkusz z mapowaniem: użytkownik / serwer RDP / certyfikat / data ważności.
- Aktualizuj sterowniki kart – IDProtect i Sigillum Menedżer w najnowszych wersjach eliminują większość problemów ze zgodnością z nowymi buildami Windows Server.
- Pilnuj terminów ważności – certyfikat na 30 dni przed wygaśnięciem zaczyna generować błędy podpisu wyglądające identycznie jak omawiany.
- Nie migruj profili „na sucho” – po przeniesieniu profilu zawsze weryfikuj magazyn certyfikatów na nowym koncie.
- Testuj podpis po większych aktualizacjach – każdy patch tuesday potrafi zmienić działanie CryptoAPI lub redirekcji USB w RDP.
Podsumowanie
Komunikat „Zestaw kluczy nie istnieje” w Comarch Optima jest irytujący, ale przy pracy przez RDP sprowadza się do jednej rzeczy: certyfikat kwalifikowany musi być zainstalowany w profilu konkretnego użytkownika na serwerze terminalowym, a nie na lokalnym laptopie – i tryb terminalowy w Optimie musi być spójny z lokalizacją certyfikatu.
Kluczowe wnioski:
- Certyfikat lokalny jest dla sesji RDP niewidoczny – import musi nastąpić po stronie serwera, w gałęzi Osobisty użytkownika.
- Opcja „Wymiana danych z komputerem lokalnym w trybie terminalowym” musi być wyłączona, jeśli certyfikat siedzi na serwerze.
- Karty Sigillum i IDProtect wymagają dodatkowego kroku z reinstalacją sterownika i włączeniem mechanizmu CSP.
Jeśli po wykonaniu wszystkich kroków problem nadal występuje, sprawdź w pierwszej kolejności datę ważności certyfikatu – następnie skontaktuj się z dostawcą podpisu kwalifikowanego.
FAQ
Czy „Zestaw kluczy nie istnieje” oznacza, że certyfikat jest uszkodzony?
Nie zawsze – w 90% przypadków certyfikat jest sprawny, ale Windows nie ma dostępu do jego klucza prywatnego. Powodem bywa zła lokalizacja w magazynie, brak importu na właściwym profilu (przy pracy przez RDP) albo nieaktualny sterownik karty kryptograficznej.
Czy mogę zainstalować certyfikat na serwerze RDP raz, dla wszystkich użytkowników?
Nie. Certyfikat kwalifikowany jest powiązany z konkretną osobą i powinien być zainstalowany wyłącznie w jej profilu. Globalna instalacja w magazynie komputera (Local Machine) nie zadziała – Comarch Optima sięga do magazynu Bieżącego użytkownika.
Czym różni się tryb terminalowy w Comarch Optima od pracy lokalnej?
Tryb terminalowy informuje Optimę, że certyfikat ma być pobierany z komputera lokalnego użytkownika, a nie z serwera, na którym działa program. Włącz go tylko wtedy, gdy podpis siedzi po stronie lokalnej i jest przekazywany do sesji RDP – w pozostałych scenariuszach pozostaw wyłączony.
Co zrobić, jeśli czytnik karty Sigillum nie jest widoczny w sesji RDP?
W kliencie Pulpitu zdalnego przejdź do Pokaż opcje → Zasoby lokalne → Więcej i zaznacz przekierowanie kart inteligentnych oraz portów USB. Po zalogowaniu zainstaluj sterownik IDProtect na serwerze – bez niego Windows nie zinterpretuje danych z karty.
