Tiket podpory sa pýta, ktorý certifikát je vnútri balíka VPN, a prvý inštinkt je vyexportovať všetko a priložiť to. Súbor P12 zabalí certifikáty a materiál súkromného kľúča do jedného kontajnera, takže exportovať všetko je presne to, čo by ste nemali posielať. Príkaz, ktorý na otázku odpovedá, je problém výberu, nie konverzie. O ktorej polovici kontajnera rozhodujú štyri prepínače a dva z nich znejú bezpečnejšie, než sú.

Začnite kontajner čítať namiesto toho, aby ste ho vyprázdnili.

Čo súbor PKCS12 skutočne obsahuje

Kontajner PKCS12 obsahuje jeden alebo viac certifikátov, prípadne súkromný kľúč a message authentication code nad obsahom. Certifikáty môžu zahŕňať koncový certifikát vašej klientskej identity a sprostredkujúce certifikáty, ktoré ho reťazia k CA. Kľúč, ak je prítomný, je to, čo zo súboru robí tajomstvo namiesto dokumentu.

Tento rozdiel je dôvod, prečo -nokeys existuje a prečo je to prepínač, ktorý táto úloha potrebuje.

Prečítajte balík bez vypísania kľúča

Kontrolná forma vypíše štruktúru a podrobnosti algoritmov a nič nezapíše: openssl pkcs12 -in client.p12 -info -noout. Opýta sa na importné heslo, čo je správne miesto pre túto hodnotu, a povie vám, či súbor vôbec obsahuje kľúč. Použite -passin env:PKCS12_PASS, keď heslo nemožno zadať, pretože heslo v príkaze shellu je heslo v zozname procesov. Tento krok nič neexportuje, a to je celý zmysel.

Vo výstupe čítajte tri veci: koľko certifikátov, či je prítomný kľúč a ktoré algoritmy ho chránia.

Použite -nokeys a nepleťte si ho s -nocerts

-nokeys vylučuje súkromné kľúče a ponecháva certifikáty. -clcerts to zužuje na klientske certifikáty, -cacerts to zužuje na certifikáty CA, a tieto dva sú filtre, nie alternatívy. -nocerts znie ako bezpečný pravopis tej istej myšlienky a znamená opak: žiadne certifikáty, čo ponechá len kľúče. Zamiešať ho do exportu certifikátov je spôsob, ako sa súkromný kľúč dostane na disk.

Dvojriadková forma, ktorá vytvorí súbor certifikátov a súbor CA a nič iné, je:

openssl pkcs12 -in client.p12 -nokeys -clcerts -out client-certificates.pem
openssl pkcs12 -in client.p12 -nokeys -cacerts -out ca-certificates.pem

Staršie balíky potrebujú na OpenSSL 3 prepínač -legacy, aby prečítali svoje staršie šifrovanie, a tento prepínač mení to, čo parser prijíma, nie to, čo vydáva. Ak parsovanie zlyhá s chybou o nepodporovanom algoritme, pridanie -legacy je správny prvý krok a preskočenie kontroly MAC nie.

Kontrolujte výstup, nie návratový kód

Nulový stav ukončenia hovorí, že príkaz prebehol, nie že súbor obsahuje to, čo očakávate. Spočítajte certifikáty vo výstupe a prečítajte subjekt a dátumy: openssl x509 -in client-certificates.pem -noout -subject -dates -fingerprint. Porovnajte odtlačok s tým, ktorý očakáva tím podpory, pretože balík s dvoma klientskymi certifikátmi vytvorí súbor s dvoma blokmi a väčšina nástrojov číta len prvý. Účel, dôvera a zhoda kľúča sú opäť samostatné testy.

Certifikát, ktorý sa dá parsovať, je certifikát, ktorý sa dá parsovať. Nie je to certifikát, ktorý VPN prijme.

Rozhodnite, či vôbec potrebujete súbory

Ak prijímajúci klient importuje PKCS12 priamo, je jednoduchšie poslať pôvodný balík schváleným kanálom s heslom oddelene a ochrana zostane zachovaná. Extrakcia je na kontrolu, pre klienta, ktorý potrebuje PEM, alebo pre prípad podpory, ktorý požiadal o konkrétny artefakt. Každá extrakcia odstráni jednu vrstvu a mala by mať dôvod.

Verejné certifikáty neobsahujú súkromný kľúč, ale obsahujú názvy a údaje o organizácii. Zdieľajte polia, o ktoré tiket požiadal, namiesto súboru, ak nebol požadovaný práve súbor.

Súvisiace články