# Pro DEBIAN 13 # server instaluj v SECURE BOOT modu (UEFI) - abys mohl později zašifrovat disk oproti TPM2 čipu ! # pokud budes chtit mit sifrovany disk tak: # pri instalaci dej vytvorit logicky šifrovaný LVM disk (vrstvu) a teprve na nej napoj / # teprve potom se udelaji kroky, ktere budou server automaticky odemykat oproti klici z TPM2 cipu apt install php8.4-curl apt install php8.4-yaml apt install -y python3 python3-venv python3-pip build-essential pkg-config libffi-dev libssl-dev pcscd opensc tzdata-legacy apt install -y rustc cargo # po upgradu Debianu (nova verze Pythonu) venv vzdy smazat a vytvorit znovu: rm -rf /opt/pyhanko-venv python3 -m venv /opt/pyhanko-venv /opt/pyhanko-venv/bin/python -m pip install --upgrade pip setuptools wheel /opt/pyhanko-venv/bin/pip install "pyHanko[pkcs11,opentype]" pyhanko-cli # (pdfminer a speedups od pyHanko 0.38 neexistuji) ln -sf /opt/pyhanko-venv/bin/pyhanko /usr/local/bin/pyhanko cp PostSignum_Root_QCA.crt /usr/local/share/ca-certificates/ # ted musis ten certifikat natvrdo prejmenovat priponu z *.pem ===> *.crt (chaos v OS) chmod 644 /usr/local/share/ca-certificates/PostSignum_Root_QCA.crt chown root:root /usr/local/share/ca-certificates/PostSignum_Root_QCA.crt update-ca-certificates -v apt install xmlsec1 libxml2-utils Server musí mít nastavenou synchronizaci času. Zkontroluj to tímto příkazem: # timedatectl timesync-status # nebo lépe timedatectl status Pokud je něco špatně zkontroluj prostup portu NTP (123) oba směry. Přidej ručně do /etc/systemd/timesyncd.conf toto: [Time] NTP=0.cz.pool.ntp.org 1.cz.pool.ntp.org 2.cz.pool.ntp.org FallbackNTP=pool.ntp.org #instalace tokenu - pro debian 12 dpkg -i /safenetauthenticationclient_10.7.77_amd64.deb #pro debian 13 (pri upgradu z D12 nejdriv odebrat starou: dpkg -r safenetauthenticationclient) dpkg -i 610-013349-004_RevB_safenetauthenticationclient-core_10.9.6885_amd64.deb apt -f install apt install opensc-pkcs11 # veledulezita vec je soubor /etc/eToken.conf: [GENERAL] MultiSlotSupport = Selected # (bez toho neni videt podpisovy slot 0x10) # jakmile zmenis ten soubor, muzes rovnou restartovat server # pak uz mas vzorove soubory pro pyHanko a pro konfiguraci PyHanka zde prilozene. # konfigurace se musi vzdy opravit podle aktualniho slotu a ID certifikatu. # Slot zjistis takto: pkcs11-tool --module /usr/lib/libIDPrimePKCS11.so --list-slots # slot 0x0 = heslo k tokenu, slot 0x10 (Digital Signature) = PODPISOVY PIN # a ID certifikatu podle vyse vypsaneho slotu ziskej takto (zadej tam svuj PODPISOVY pin): pkcs11-tool --module /usr/lib/libIDPrimePKCS11.so --slot 0x10 --login --pin TVUJ_PIN --list-objects # ID do pyHanka zadavej bez procent (cisty hex) #pro podepisovani EML (MIME) apt install openssl pkcs11-provider gnutls-bin apt install libengine-pkcs11-openssl #tohle se ukazalo, ze neni dulezite //echo "deb http://deb.debian.org/debian trixie-backports main" > /etc/apt/sources.list.d/trixie-backports.list //apt update //apt install -t trixie-backports pkcs11-provider # Jak nastavit soubor *.CNF : # 1. Natsav tam spravny PIN # JAK zjistit URL certifikatu p11tool --provider /usr/lib/libIDPrimePKCS11.so --list-token-urls # pak vem spravnou URL certifikatu (konci Signat) a vloz do do apostrofů nasledujiciho prikazu # POZOR: URL musi zacinat "pkcs11:model=" jinak p11tool spadne (SIGSEGV) # takto zjistis URI privatniho klice p11tool --provider /usr/lib/libIDPrimePKCS11.so \ --login \ --list-privkeys \ 'pkcs11:model=ID%20Prime%20MD;manufacturer=Gemalto;serial=8E2599EE8E46FCB4;token=8E2599EE8E46FCB4%20%28Digital%20Signat' # vidis ve vypisu URL: tak to co je za tim, to potrebujes # URL certifikatu je stejna, jen na konci je type=cert misto type=private # zaneses to do konfiguraku *.cnf # Zablokovany podpisovy PIN (CKR_PIN_LOCKED): # heslo spravce ho neodemkne. Windows -> SafeNet Authentication Client Tools # -> pravym na token -> "Nastaveni PIN digitalniho podpisu..." -> PUK -> novy PIN # pak na serveru: systemctl restart pcscd # NIKDY "Inicializovat token" # CRON ----------------------- * * * * * root sleep 8; /usr/bin/timeout -k 5s 540s /usr/bin/php /home/nemec/signDaemon.php * * * * * root sleep 18; /usr/bin/timeout -k 5s 540s /usr/bin/php /home/nemec/signDaemon.php * * * * * root sleep 28; /usr/bin/timeout -k 5s 540s /usr/bin/php /home/nemec/signDaemon.php * * * * * root sleep 38; /usr/bin/timeout -k 5s 540s /usr/bin/php /home/nemec/signDaemon.php * * * * * root sleep 48; /usr/bin/timeout -k 5s 540s /usr/bin/php /home/nemec/signDaemon.php * * * * * root sleep 58; /usr/bin/timeout -k 5s 540s /usr/bin/php /home/nemec/signDaemon.php