Export certifikátů z P12 bez soukromého klíče
Balíček PKCS12 obsahuje klíče a certifikáty pohromadě. Nejprve si přečtěte strukturu a potom vyberte certifikáty pomocí -nokeys místo toho, abyste odstranili ochranu.
Tiket podpory se ptá, který certifikát je uvnitř balíčku VPN, a první instinkt je vyexportovat vše a přiložit to. Soubor P12 zabalí certifikáty a materiál soukromého klíče do jednoho kontejneru, takže exportovat vše je přesně to, co byste neměli posílat. Příkaz, který na otázku odpovídá, je problém výběru, nikoli konverze. O které polovině kontejneru rozhodují čtyři přepínače a dva z nich znějí bezpečněji, než jsou.
Začněte kontejner číst, místo abyste ho vyprázdnili.
Co soubor PKCS12 skutečně obsahuje
Kontejner PKCS12 obsahuje jeden nebo více certifikátů, případně soukromý klíč a message authentication code nad obsahem. Certifikáty mohou zahrnovat koncový certifikát vaší klientské identity a zprostředkující certifikáty, které ho řetězí k CA. Klíč, pokud je přítomen, je to, co ze souboru dělá tajemství namísto dokumentu.
Tento rozdíl je důvod, proč -nokeys existuje a proč je to přepínač, který tento úkol potřebuje.
Přečtěte balíček, aniž byste klíč vypsali
Kontrolní forma vypíše strukturu a podrobnosti algoritmů a nic nezapíše: openssl pkcs12 -in client.p12 -info -noout. Zeptá se na importní heslo, což je správné místo pro tuto hodnotu, a řekne vám, zda soubor vůbec obsahuje klíč. Použijte -passin env:PKCS12_PASS, když heslo nelze zadat, protože heslo v příkazu shellu je heslo v seznamu procesů. Tento krok nic neexportuje, a to je celý smysl.
Ve výstupu čtěte tři věci: kolik certifikátů, zda je přítomen klíč a které algoritmy ho chrání.
Použijte -nokeys a nepleťte si ho s -nocerts
-nokeys vylučuje soukromé klíče a ponechává certifikáty. -clcerts to zužuje na klientské certifikáty, -cacerts to zužuje na certifikáty CA, a tyto dva jsou filtry, nikoli alternativy. -nocerts zní jako bezpečný pravopis stejné myšlenky a znamená opak: žádné certifikáty, což ponechá jen klíče. Zamíchat ho do exportu certifikátů je způsob, jak se soukromý klíč dostane na disk.
Dvouřádková forma, která vytvoří soubor certifikátů a soubor CA a nic jiného, je:
openssl pkcs12 -in client.p12 -nokeys -clcerts -out client-certificates.pem
openssl pkcs12 -in client.p12 -nokeys -cacerts -out ca-certificates.pemStarší balíčky potřebují na OpenSSL 3 přepínač -legacy, aby přečetly své starší šifrování, a tento přepínač mění to, co parser přijímá, nikoli to, co vydává. Pokud parsování selže s chybou o nepodporovaném algoritmu, přidání -legacy je správný první krok a přeskočení kontroly MAC nikoli.
Kontrolujte výstup, ne návratový kód
Nulový stav ukončení říká, že příkaz proběhl, ne že soubor obsahuje to, co očekáváte. Spočítejte certifikáty ve výstupu a přečtěte subjekt a data: openssl x509 -in client-certificates.pem -noout -subject -dates -fingerprint. Porovnejte otisk s tím, který očekává tým podpory, protože balíček se dvěma klientskými certifikáty vytvoří soubor se dvěma bloky a většina nástrojů čte jen první. Účel, důvěra a shoda klíče jsou opět samostatné testy.
Certifikát, který se dá parsovat, je certifikát, který se dá parsovat. Není to certifikát, který VPN přijme.
Rozhodněte, zda vůbec potřebujete soubory
Pokud přijímající klient importuje PKCS12 přímo, je jednodušší poslat původní balíček schváleným kanálem s heslem odděleně a ochrana zůstane zachována. Extrakce je pro kontrolu, pro klienta, který potřebuje PEM, nebo pro případ podpory, který požádal o konkrétní artefakt. Každá extrakce odstraní jednu vrstvu a měla by mít důvod.
Veřejné certifikáty neobsahují soukromý klíč, ale obsahují názvy a údaje o organizaci. Sdílejte pole, o která tiket požádal, místo souboru, pokud nebyl požadován právě soubor.