Støttesaka spør kva sertifikat som ligg i VPN-bunten, og den første innskytelsen er å eksportera alt og legga det ved. Ei P12-fil pakkar sertifikat og privat nøkkelmateriale i ein container, så å eksportera alt er nettopp det du ikkje vil senda. Kommandoen som svarar på spørsmålet, er eit utvalsproblem, ikkje eit konverteringsproblem. Fire flagg avgjer kva halvdel av containeren du får, og to av dei høyrest tryggare ut enn dei er.

Byrja med å lesa containeren i staden for å tøma han.

Kva ei PKCS12-fil faktisk inneheld

Ein PKCS12-container inneheld eitt eller fleire sertifikat, moglegvis ein privat nøkkel og ein message authentication code over innhaldet. Sertifikata kan omfatta leaf-sertifikatet for klientidentiteten din og mellomsertifikata som kjedar det til ein CA. Nøkkelen, når han finst, er det som gjer fila til ein løyndom i staden for eit dokument.

Den skilnaden er grunnen til at -nokeys finst, og til at det er flagget denne oppgåva treng.

Les bunten utan å skriva ut nøkkelen

Inspeksjonsforma skriv ut struktur og algoritmedetaljar og skriv ingenting: openssl pkcs12 -in client.p12 -info -noout. Ho spør etter importpassordet, som er rett stad for den verdien, og ho fortel deg om fila i det heile inneheld ein nøkkel. Bruk -passin env:PKCS12_PASS når passordet ikkje kan skrivast inn, for eit passord i ein shell-kommando er eit passord i prosesslista. Dette steget eksporterer ingenting, og det er nettopp poenget.

Les utdata etter tre ting: kor mange sertifikat, om ein nøkkel er til stades, og kva algoritmar som vernar han.

Bruk -nokeys, og ikkje blanda det saman med -nocerts

-nokeys utelèt private nøklar og lèt sertifikata vera att. -clcerts avgrensar det til klientsertifikat, -cacerts avgrensar det til CA-sertifikat, og dei to er filter snarare enn alternativ. -nocerts les som den trygge skrivemåten av same idé og tyder det motsette: ingen sertifikat, noko som berre lèt nøklar vera att. Å blanda det inn i ein sertifikateksport er korleis ein privat nøkkel hamnar på disken.

Den tolinja forma som gjev ei sertifikatfil og ei CA-fil, og ingenting anna, er:

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

Eldre buntar treng -legacy på OpenSSL 3 for å lesa den eldre krypteringa si, og det flagget endrar kva parsaren godtek, ikkje kva han gjev ut. Viss parseringa mislykkast med ein feil om ein algoritme som ikkje er støtta, er det rette første trekket å legga til -legacy, og å hoppa over MAC-kontrollen er det ikkje.

Kontroller utdata, ikkje exitkoden

Ein exitstatus på null seier at kommandoen køyrde, ikkje at fila inneheld det du ventar. Tel sertifikata i utdata og les subject og datoar: openssl x509 -in client-certificates.pem -noout -subject -dates -fingerprint. Samanlikn fingeravtrykket med det støtteteamet ventar, for ein bunt med to klientsertifikat gjev ei fil med to blokker, og dei fleste verktøy les berre den første. Formål, tillit og nøkkelsamsvar er igjen separate testar.

Eit sertifikat som let seg parsere, er eit sertifikat som let seg parsere. Det er ikkje eit sertifikat som VPN-en godtek.

Avgjer om du i det heile treng filer

Viss klienten som tek imot, importerer PKCS12 direkte, er det enklare å senda den opphavlege bunten gjennom ein godkjend kanal med passordet halde åtskilt, og vernet blir bevart. Utdrag er for inspeksjon, for ein klient som treng PEM, eller for ei støttesak som bad om ein bestemt artefakt. Kvart utdrag fjernar eitt lag og bør ha ein grunn.

Offentlege sertifikat inneheld ikkje den private nøkkelen, men dei inneheld namn og organisasjonsdetaljar. Del felta saka bad om, i staden for fila, med mindre det er fila som vart beden om.

Relaterte artiklar